Pull-Based Microservices Communication for Video Analytics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing communication mechanisms in microservices-based real-time streaming video analytics pipelines, such as NATS and gRPC, face inefficiencies due to push-based data transmission, leading to wastage of resources and non-uniform frame processing, which affects analytics accuracy and network bandwidth utilization.

Innovation Solution

A pull-based communication method, DataXc, where microservices selectively fetch data items for processing, utilizing a mesh controller to assign inputs to sidecars, allowing only necessary data to be transmitted and processed, thereby optimizing resource usage and ensuring uniform frame processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If push-based communication is used in microservices-based real-time streaming video analytics pipelines, then data transmission is automated, but resource wastage increases and frame processing becomes non-uniform

Engineering Contradiction:
Improvedata transmission automationVSAvoidresource wastage
Core Design Contradiction:
Extent of automationVSLoss of energy

Solution Approach 1:

The patent inverts the traditional push-based communication model by implementing a pull-based communication model. Instead of the system automatically pushing data to microservices, microservices actively pull data items from the communication channel when they are ready to process them. This inversion gives microservices control over data reception, allowing them to process frames uniformly and avoid resource wastage from processing frames they cannot handle, while maintaining automated data flow through the pipeline.

Inventive Principle:
Principle #13The other way round (Inversion)

2Use of energy by stationary object

If push-based communication is used, then data flow is continuous, but network bandwidth utilization increases due to unnecessary data transmission

Engineering Contradiction:
Improvenetwork bandwidth consumptionVSAvoidprocessing rate
Core Design Contradiction:
Use of energy by stationary objectVSProductivity

Solution Approach 1:

The patent implements self-service communication where each microservice autonomously decides when to request data items based on its current processing capacity and state. Microservices monitor their own readiness and independently pull data items from the communication channel only when they can process them effectively. This self-service mechanism eliminates unnecessary data transmission, reducing network bandwidth consumption while maintaining high processing rates through efficient resource utilization.

Inventive Principle:
Principle #25Self-service

3Loss of energy

If selective data pulling is implemented, then resource efficiency improves, but communication complexity increases

Engineering Contradiction:
Improveresource efficiencyVSAvoidcommunication mechanism complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary communication channel that manages the pull-based interactions between microservices. This intermediary layer handles the complexity of selective data pulling by providing a standardized interface for microservices to request and receive data items. The intermediary maintains the communication protocol, manages data item availability, and coordinates between multiple microservices, thereby reducing the complexity burden on individual microservices while enabling efficient selective data retrieval.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12047467B2Flexible and efficient communication in microservices-based stream analytics pipeline
Publication Date: 2024.07.23 NEC CORP
  • US12047467B2 patent drawing
  • US12047467B2 patent drawing
  • US12047467B2 patent drawing

AI summary

A pull-based communication method for microservices-based real-time streaming video analytics pipelines is provided. The method includes receiving a plurality of frames from a plurality of cameras, each camera including a camera sidecar, arranging a plurality of detectors in layers such that a first detector layer includes detectors with detector sidecars and detector business logic, and the second detector layer includes detectors with only sidecars, arranging a plurality of extractors in layers such that a first extractor layer includes extractors with extractor sidecars and extractor business logic, and the second extractor layer includes extractors with only sidecars, and enabling a mesh controller, during registration, to selectively assign inputs to one or more of the detector sidecars of the first detector layer and one or more of the extractor sidecars of the first extractor layer to pull data items for processing.