Sarapis Architecture Design
Overview
Sarapis has an open-source backend data administrator interface tailored for managing Human Services Data Standard (HSDS) datasets, which provide standardized information about health, human, and social services. The project's primary objective will be to create a modular, service-based backend that simplifies the management, validation, and interaction of HSDS datasets.
Project Goals
- Interoperability and Standardization: Enhance data interoperability by providing a platform that validates HSDS formats and ensures interface consistency in managing health, human, and social services information across various organizations.
- Scalability and Modularity: The service must provide modularity and scalability to ensure seamless integration with other HSDS-supporting applications.
Key Features
- Database Management: CRUD (Create, Read, Update, Delete) operations for managing various HSDS entities
- Taxonomy Management: Tools for managing and customizing taxonomies to classify resources and services.
- Data Validation: Integration with OpenReferralsUK's schema validator to ensure dataset compliance with HSDS specifications
- User and Role Management: Comprehensive user account, permissions, and authentication features to control access and data integrity.
- Import/Export functionality: Support for data import and export in multiple formats to facilitate data exchange and integration
High-Level Architecture Overview
Due to the scalability and flexibility requirements of the project following a micro-services architecture, it will align well with the goals of modularity, scalability, and integration within the broader open-source ecosystem. The microservice architecture for the proposed HSDS backend administration interface can be structured as follows:
Data Import/Export Service
Appendix
What is a taxonomy
You can think of a taxonomy as a structured system used to classify and organize information into categories, making it easier to understand, manage, and retrieve. It involves some sort of hierarchical arrangement, where items are grouped into broader categories and further divided into subcategories.