Common Metadata Repository for Enterprise Microservices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In enterprise applications, managing relationships and hierarchies between different entities is challenging due to the separation of microservices, leading to difficulties in interoperability and compatibility when new entities or extension services are introduced, especially in the microservices model where each microservice has its own metadata repository.
Innovation Solution
A scalable common metadata repository model is introduced, acting as a single-source-of-truth repository that stores and manages both entity and extension schemas using a hierarchical data model, allowing for efficient creation, updating, and operation of services, and enabling seamless integration and interoperability across all entities and services.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If each microservice has its own metadata repository, then service independence and modular deployment are improved, but managing relationships and hierarchies between entities becomes difficult and interoperability is reduced
Solution Approach 1:
The system segments metadata into two distinct types: entity schemas stored in entity databases and extension schemas stored in extension databases. This segmentation allows microservices to independently manage their core entity metadata while sharing extension metadata through a common extension database, thus maintaining service independence while simplifying overall metadata management.
Solution Approach 2:
The extension database acts as an intermediary component that enables shared access to extension schemas across multiple microservices. Instead of each microservice having complete independence, the extension database mediates between services, providing a common repository for extension metadata that improves interoperability while preserving service autonomy.
2Device complexity
If a common metadata repository is used for all entities, then interoperability and relationship management are improved, but service autonomy and scalability are reduced
Solution Approach 1:
The metadata repository is segmented into entity databases for core entity schemas and extension databases for extension schemas. This segmentation allows different levels of sharing: entity metadata remains service-specific for autonomy, while extension metadata is shared for interoperability, thus resolving the contradiction between common management and service autonomy.
Solution Approach 2:
Different parts of the metadata system have different sharing characteristics: entity databases maintain local quality with service-specific metadata for autonomy, while extension databases provide global quality with shared metadata for interoperability. This local differentiation resolves the contradiction by allowing both service autonomy and common management in appropriate contexts.
3Adaptability or versatility
If multiple separate metadata repositories are maintained, then service modularity is improved, but onboarding time and development time increase
Solution Approach 1:
The system performs preliminary action by pre-defining extension schemas in the extension database that can be reused across multiple microservices. When onboarding new services, developers can leverage these pre-defined extension schemas rather than creating everything from scratch, thus reducing onboarding and development time while maintaining service modularity.
Solution Approach 2:
Extension schemas defined in the extension database can be copied and reused across multiple microservices. Instead of recreating similar extension metadata in each service, developers can copy from the common extension database, significantly reducing development time while preserving service modularity through the entity database separation.
4Productivity
If entity schemas and extension schemas are stored separately, then data organization and retrieval efficiency are improved, but system complexity increases
Solution Approach 1:
The system segments schemas into entity schemas and extension schemas stored in separate databases. This segmentation improves retrieval efficiency by allowing targeted queries to specific database types, while the overall system complexity is managed through clear separation of concerns and standardized access patterns.
Solution Approach 2:
Despite physical separation, the system maintains universal access patterns through a unified metadata management approach. Both entity and extension databases follow similar access protocols and can be queried using consistent methods, thus improving retrieval efficiency without significantly increasing perceived system complexity for developers.
Data Source
AI summary
Systems and methods for enterprise applications supported by common metadata repository are described. One or more aspects of the systems and methods include storing a plurality of entity schemas in a metadata repository, wherein each of the plurality of entity schemas corresponds to a different entity service from a plurality of entity services that interact with an application; storing a plurality of extension schemas in the metadata repository, wherein each of the plurality of extension schemas corresponds to a different extension service from a plurality of extension services utilized by the application; receiving, at the metadata repository from an extension service of the plurality of extension services, an entity schema request indicating an entity schema corresponding to an entity service of the plurality of entity services; and providing, from the metadata repository to the extension service, the entity schema in response to the entity schema request.


