Microservice Layer Repository Segmentation for Independent Compilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Tight coupling between layers in microservice architecture makes independent development and maintenance of source code inefficient, as changes to one layer can affect others and developers cannot work independently on different layers.

Innovation Solution

Storing source code for different layers in separate repositories allows for independent compilation and management, generating unique packages for each layer, and creating container images that include these packages for efficient deployment and communication between layers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If source code for different layers is stored in the same repository and compiled together, then layers can communicate through shared code, but developers cannot work independently and changes to one layer affect others

Engineering Contradiction:
ImproveIndependent development capabilityVSAvoidRepository management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent divides the monolithic repository into multiple separate repositories, with each repository storing source code for a specific layer of the microservice architecture. This segmentation allows developers to work independently on different layers without affecting other layers, while still enabling integrated deployment through the system's orchestration capabilities.

Inventive Principle:
Principle #1Segmentation

2Productivity

If layers are tightly coupled in a monolithic architecture, then deployment is straightforward, but maintenance and modification of individual layers becomes inefficient

Engineering Contradiction:
ImproveDevelopment efficiencyVSAvoidSystem integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments the application into independent microservice layers, each stored in its own repository and compiled separately into packages. This enables parallel development and independent modification of layers while maintaining system integrity through standardized API contracts and coordinated deployment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediary components including API contracts, package manifests, and orchestration logic that mediate between independently developed layers. These intermediaries ensure that loosely coupled layers can communicate effectively and maintain system coherence without requiring tight coupling.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If source code is independently compiled for each layer, then development flexibility improves, but package management and integration complexity increases

Engineering Contradiction:
ImproveIndependent compilation capabilityVSAvoidPackage repository management
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements a universal package format and standardized manifest structure that can accommodate independently compiled layers from multiple repositories. This universal approach simplifies package management by providing consistent interfaces for storing, retrieving, and integrating packages regardless of their source layer, reducing the complexity that would otherwise arise from heterogeneous package formats.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP4075262B1Dynamic multiple repository package management through continuous integration
Publication Date: 2025.01.01 BAKER HUGHES CO
  • EP4075262B1 patent drawingFigure 1
  • EP4075262B1 patent drawingFigure 2

AI summary

In one implementation, a method includes receiving data characterizing a notification indicative of modification to a first source code of a first layer of a software architecture. The first layer is stored in a first repository of a plurality of repositories of a microservice. The method further includes generating a modified first package including a first computer-executable code generated by at least compiling the first source code and assigning a unique first name to the modified first package. The method further includes transmitting an instruction to a repository manager of a package repository to store the modified first package with the assigned first name in the package repository. The method also includes generating a first modified container image including the modified first package.