Adaptive Data Model Extension for Multi-Tenant Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data interchange systems face maintenance and scalability issues due to the need for frequent updates in data object formats to accommodate diverse requirements of different actors within an enterprise, leading to inefficiencies in API transfers.
Innovation Solution
A query processing method that determines a set of extension bindings based on the requestor's identity or tenant association, retrieving and generating a data object by adding specified extension fields to the base data model, allowing for dynamic adaptation of data models to meet specific needs without refactoring existing code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If all required fields are added to the data object to accommodate diverse actor needs, then the data object becomes a superset of all potentially needed fields, but maintenance and scalability problems arise when data object format changes require actors to update their code
Solution Approach 1:
The data object format is segmented into a stable base schema and optional extension fields. The base schema contains core fields that remain consistent across all actors, while extension fields are added conditionally based on actor-specific requirements. This segmentation allows the system to accommodate diverse needs without requiring all actors to handle all fields, reducing maintenance complexity when format changes occur.
Solution Approach 2:
The data object format is made dynamic through the use of extension bindings that are determined at query time based on the requestor's identity or tenant association. Rather than a static superset of all fields, the format adapts dynamically to include only the necessary base fields and relevant extensions for each actor, reducing the burden of code updates when formats change.
2Adaptability or versatility
If different APIs are created for all actors who need to access the object, then each API can return fields relevant to that actor, but maintenance and scalability problems become even more severe
Solution Approach 1:
A single unified API is designed to serve all actors by incorporating extension bindings that adapt the data object format based on the requestor's identity or tenant association. This universal API replaces the need for multiple specialized APIs, as it can dynamically configure the response to match each actor's specific requirements while maintaining a consistent interface, thereby reducing API maintenance complexity.
3Stability of the object's composition
If the data object includes only base fields, then the data model remains simple and stable, but actors requiring additional fields cannot receive tailored data without code updates
Solution Approach 1:
The data model is segmented into a stable base schema containing core fields that maintain consistency and stability, and optional extension fields that provide customization for specific actors. The extension bindings mechanism allows the system to attach relevant extensions to the base schema at query time based on actor identity or tenant association, enabling tailored data delivery without compromising the stability of the core data model.
Data Source
AI summary
A method includes receiving a query directed to a first data model that specifies base data fields. The method includes determining extension bindings for the first data model. A binding specifies an extension to the first data model and specifies one of the base data fields as a node at which the specified extension is added. The extension specifies a non-empty set of data fields. The method includes retrieving base data values according to the base data fields and extension data values according to, for a first binding, the set of data fields. The method includes generating a data object from the base and extension data values according to a second data model. The second data model is based on the first data model extended by adding the data fields from the extension specified by the first binding to the first data model at the specified node.


