Dynamic Event Routing in Multi-Tenant Application Servers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional multi-tenant systems inefficiently process and route events as they require all events to undergo the same processing and routing, leading to unnecessary resource utilization and the need for recompilation when tenant needs change.
Innovation Solution
Implementing a dynamic configuration system that uses mapping metadata to route events to specific destinations based on event attributes and tenant permissions, allowing for customized processing and storage according to individual tenant requirements without recompilation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If traditional multi-tenant systems process all events through the same processing and routing, then system simplicity is maintained, but resource utilization becomes inefficient
Solution Approach 1:
The patent segments the event processing system into multiple processing paths based on event attributes and tenant permissions. Instead of a single monolithic processing pipeline, events are routed through different processing and storage destinations selectively, dividing the system into functional segments that handle specific event types or tenant requirements independently.
Solution Approach 2:
The patent implements dynamic event routing where the processing path and storage destination for each event are determined at runtime based on event attributes and tenant permissions. This dynamic configuration allows the system to adapt processing behavior without recompilation, optimizing resource utilization by activating only the necessary processing paths for each event.
2Reliability
If traditional systems route all events to all storage destinations, then complete data availability is ensured, but storage resources are wasted
Solution Approach 1:
The patent applies local quality by assigning different storage destinations to different events based on their specific attributes and tenant requirements. Each event is evaluated individually, and only the necessary storage destinations are selected, ensuring that each event receives appropriate storage treatment rather than applying a uniform routing policy to all events.
Solution Approach 2:
The patent changes the routing parameters dynamically based on event attributes and tenant permissions. By evaluating event-specific parameters and tenant configuration parameters, the system determines the optimal storage destinations for each event, changing the routing behavior from static to parameter-driven dynamic selection.
3Stability of the object's composition
If compile-time configuration is used for event processing, then system stability is maintained, but adaptability to changing tenant needs deteriorates
Solution Approach 1:
The patent transitions from static compile-time configuration to dynamic runtime configuration. Event processing and routing behavior is determined at runtime based on current event attributes and tenant permissions, allowing the system to adapt to changing tenant needs without recompilation while maintaining stable core processing functions.
Solution Approach 2:
The patent implements a self-configuring system where tenant permissions and event attributes automatically determine the processing and routing behavior. The system evaluates tenant requirements and event characteristics independently, configuring the processing path and storage destination without external intervention or recompilation, enabling automatic adaptation to changing needs.
Data Source
AI summary
A method for dynamically routing of events to destinations based on mapping metadata is described. The method includes detecting, by a capture service of an application server, an event associated with values for one or more attributes that describe the event; mapping, by a metadata service of the application server, the event to a set of destinations based on the mapping metadata received by the application server at runtime, the values of the one or more attributes of the event, and permissions associated with a tenant; and storing, by a buffer of the application server, the event and the set of destinations.


