Event-Driven System Selective Computation Consumer Listening
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Event-driven systems face challenges in efficiently managing processing resources, leading to either increased latency or higher costs due to compute peaks when generating events in real-time, as they need to perform a large number of computations in response to incoming data elements.
Innovation Solution
An event-driven system that selectively generates events based on the presence of consumers listening for them and the relative importance of the events, deferring computations for less important events until a threshold number of consumers are listening or during off-peak times, thereby conserving processing resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If real-time or near real-time event generation is performed, then event delivery timeliness is improved, but processing resource consumption increases substantially due to compute peaks
Solution Approach 1:
The system dynamically adjusts event generation timing based on consumer presence. When consumers are listening for events, the system generates events in real-time or near real-time. When no consumers are present, event generation is deferred to off-peak times, thereby adapting processing resource usage to actual demand and reducing compute peaks while maintaining timely delivery when needed.
Solution Approach 2:
The system performs preliminary identification of events that could be generated from incoming data elements, but delays the actual computation and generation until consumers are present. This allows the system to prepare event candidates in advance without immediately consuming processing resources, reducing compute peaks while ensuring events are ready for timely delivery when consumers arrive.
2Use of energy by moving object
If batch-based computations are performed on all incoming data elements, then processing resource requirements are reduced, but event generation latency increases
Solution Approach 1:
The system performs partial event generation - only generating events when consumers are present to listen for them. Instead of batch-processing all possible events regardless of consumer presence, the system selectively generates events based on actual consumer demand, reducing processing resource consumption while maintaining timely delivery for relevant events.
Solution Approach 2:
The system dynamically switches between immediate event generation (when consumers are present) and deferred batch processing (when consumers are absent). This dynamic approach allows the system to optimize between real-time performance and resource efficiency based on actual consumer presence, rather than committing to a fixed batch-processing schedule.
3Use of energy by moving object
If computations are deferred until consumers begin listening for events, then processing resources are conserved by reducing compute peaks, but some events experience increased latency
Solution Approach 1:
The system performs preliminary identification and buffering of events that could be generated from incoming data elements, but delays actual computation until consumers are present. This preliminary action ensures events are ready to be generated quickly when consumers arrive, reducing the perceived latency while still conserving processing resources during off-peak periods when no consumers are listening.
Data Source
AI summary
An event-driven system, method and computer program product are provided to selectively generate events in response to receipt of data elements. The event-driven system includes processing circuitry configured to identify, in response to receipt of one or more data elements, an event that is impacted by the one or more data elements. The processing circuitry is also configured to determine whether at least a threshold number of consumers are currently listening for the event. In an instance in which at least a threshold number of consumers are currently listening for the event, the processing circuitry is configured to perform one or more computations based upon the one or more data elements to generate the event. Otherwise, however, the processing circuitry is configured to at least defer the one or more computations that would be performed upon the one or more data elements to generate the event.


