Pull-Based Microservices Communication for Video Analytics
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Loss of energy
If selective data pulling is implemented, then resource efficiency improves, but communication complexity increases
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.
Data Source
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.


