Extending Monolithic Database Data Model via Custom Field Microservice

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-tenant computing systems face challenges in customizing a fixed data model on a per-tenant basis, as most monolithic applications require significant re-implementation and data migration to accommodate custom fields, leading to increased costs and complexity.

Innovation Solution

Implementing custom fields as a separate web service with its own database and using microservices to manage metadata and record storage and fetch requests, allowing for customization without modifying the monolithic application or database.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If custom fields are implemented using a new database table with database joins in a monolithic application, then custom fields can be stored and retrieved, but re-implementation costs increase and data migration is required

Engineering Contradiction:
Improvecustom field capabilityVSAvoidre-implementation cost
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent segments the custom field functionality from the monolithic application by creating a separate microservice. The custom field microservice independently manages custom field definitions, metadata, and data storage, while the monolithic application handles global fields. This segmentation eliminates the need for database joins and reduces re-implementation costs by allowing independent deployment and evolution of custom field capabilities.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If custom fields are implemented using a new database table with database joins in a monolithic application, then custom fields can be stored and retrieved, but data migration is required to add new features

Engineering Contradiction:
Improvecustom field capabilityVSAvoiddata migration time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent extracts custom field functionality from the monolithic application into a separate microservice with its own database. This extraction eliminates the need for data migration when adding new custom field features, as the custom field microservice can independently evolve its schema and storage mechanisms without affecting the monolithic application's global field data.

Inventive Principle:
Principle #2Taking out (Extraction)

3Device complexity

If a fixed data model is provided common across all tenants, then system simplicity is maintained, but per-tenant customization is difficult

Engineering Contradiction:
Improvedata model structureVSAvoidper-tenant customization
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent segments the data model into two independent parts: global fields stored in the monolithic application and custom fields stored in the custom field microservice. This segmentation allows each tenant to have a standardized global field structure while simultaneously enabling per-tenant customization through the microservice's tenant-specific custom fields, without increasing overall system complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11734092B2Systems and methods for extending the data model of a monolithic database through a microservice for a multi-tenant platform
Publication Date: 2023.08.22 ZUORA INC
  • US11734092B2 patent drawing
  • US11734092B2 patent drawing
  • US11734092B2 patent drawing

AI summary

A multi-tenant system comprises a monolithic database storing global records, each including global fields common for all tenants; a custom field database storing custom records, each including custom fields for a tenant; a custom field record service processing a custom record storage request by instructing the custom field database to store custom field values of the custom record for the tenant, and processing a custom record fetch request by instructing the custom field database to retrieve the custom field values; a monolithic application configured to receive a record storage or fetch request, configured to partition the record storage request into the global record storage request and the custom record storage request, configured to send the custom record storage request to the custom field record service, configured to partition the record fetch request into the global record fetch request and the custom record fetch request, and configured to send the custom record fetch request to the custom field record service.