Asynchronous Channel Bus for Decoupled Service Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current approaches to integrating separate products or distributed systems face challenges in sourcing, delivering, and sharing multiple streams of real-time data between middleware layers, leading to tightly coupled services that are difficult to manage and prone to breakage from API changes.

Innovation Solution

An asynchronous channel-based bus architecture, Bifröst, enables decoupled services by allowing dynamic channel creation and message broadcasting, using STOMP and ReactiveX for asynchronous communication, allowing any UI, service, or platform to send and receive messages without additional technology or custom integrations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If services are tightly coupled through dependency injection and direct API calls, then real-time data sharing between services is achieved, but system complexity and difficulty of maintenance increase significantly

Engineering Contradiction:
Improvereal-time data sharingVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an event bus as an intermediary component that mediates communication between services. Instead of services directly calling each other's APIs or being injected with dependencies, they publish events to and subscribe from the event bus. This intermediary layer simplifies the system architecture by providing a standardized communication protocol and reducing the complexity of direct service-to-service interactions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the monolithic service architecture into independent, loosely-coupled services that communicate through events. Each service operates independently, publishing its own events and subscribing to events it needs, which divides the complex system into manageable, autonomous units that are easier to maintain and scale.

Inventive Principle:
Principle #1Segmentation

2Speed

If proprietary APIs and SDKs are used for internal service communication, then real-time data access is enabled, but technical debt accumulates and adaptability decreases

Engineering Contradiction:
Improvereal-time data accessVSAvoidadaptability to API changes
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal event bus that serves as a common communication infrastructure for all services in the system. This single standardized interface replaces multiple proprietary APIs and SDKs, allowing any service to communicate with any other service through a consistent event publishing and subscription mechanism, thereby improving adaptability and reducing technical debt.

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

3Loss of information

If multiple services are integrated bidirectionally through direct API calls, then comprehensive data sharing is achieved, but the integration process becomes slow and painful when API changes occur

Engineering Contradiction:
Improvedata sharing completenessVSAvoidintegration speed
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The event bus enables continuous, asynchronous data flow between services without the need for bidirectional API calls. Services can publish events continuously and have them delivered to all subscribers in real-time, eliminating the back-and-forth synchronization delays inherent in bidirectional API integration and significantly improving integration speed and responsiveness.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11221981B2Asynchronous channel based bus architecture enabling decoupled services
Publication Date: 2022.01.11 VMWARE INC
  • US11221981B2 patent drawing
  • US11221981B2 patent drawing
  • US11221981B2 patent drawing

AI summary

In an asynchronous channel based bus architecture enabling decoupled services, there is an asynchronous channel based bus having at least one channel. A first service is coupled to the asynchronous channel based bus, the first service passes messages to and receives messages on the at least one channel. A second service is also coupled to the asynchronous channel based bus, the second service also passes messages to and receive messages on the at least one channel.