Multi-Tenant Message Flow Processing with Custom Logic Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multi-tenant environments face challenges in integrating message flows across tenants while ensuring security, as general-purpose programming languages like Java can potentially interfere with other flows, necessitating separate containers for each tenant, which is costly, or prohibiting their use, failing to meet functional requirements.
Innovation Solution
A method that monitors message flows in a multi-tenant container, suspends and reroutes those using custom logic in general-purpose programming languages when other flows are processing, and resumes after others are complete, preventing interference and allowing resource sharing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate containers are used for each tenant to prevent interference, then security and reliability are improved, but device complexity and cost increase
Solution Approach 1:
The system segments message flows into two categories: standard flows processed in shared multi-tenant containers and custom flows requiring general-purpose programming languages processed in isolated single-tenant containers. This segmentation allows most flows to benefit from resource sharing while custom flows get the isolation needed for security, resolving the contradiction between security and resource utilization.
Solution Approach 2:
Different quality levels of isolation are applied to different message flows based on their requirements. Standard flows receive minimal isolation (shared container) while custom flows receive strong isolation (single-tenant container). This local differentiation optimizes the balance between security and resource efficiency.
2Reliability
If general-purpose programming languages are prohibited to prevent interference, then security is improved, but adaptability and functionality deteriorate
Solution Approach 1:
The system segments flows based on their programming language requirements. Flows using general-purpose programming languages are routed to single-tenant containers where they can execute custom logic without interfering with other tenants, while flows using standard processing remain in multi-tenant containers. This preserves both security and functional versatility.
Solution Approach 2:
The integration engine acts as an intermediary that detects whether a flow uses custom logic in general-purpose programming languages and automatically routes it to an appropriate single-tenant container. This intermediary mechanism enables custom logic execution while maintaining security through automatic isolation.
3Device complexity
If resource sharing is implemented to reduce cost, then device complexity is reduced, but reliability deteriorates due to potential interference between tenants
Solution Approach 1:
The system segments the container architecture into multi-tenant containers for standard flows and single-tenant containers for custom flows. This segmentation allows resource sharing for the majority of flows while providing isolation when needed, achieving both cost efficiency and security.
Solution Approach 2:
The integration engine provides universal functionality by automatically detecting flow characteristics and routing to appropriate container types. This multi-functional approach allows the same system to handle both shared and isolated processing scenarios, optimizing resource utilization while maintaining security.
Data Source
AI summary
A computer-implemented method, system and computer program product for safely processing integrated flows of messages in a multi-tenant container. Each step in the flows of messages to be processed by the applications in the multi-tenant container is monitored. If the monitored step is determined to run custom logic in a general-purpose programming language, then the flow of messages running such custom logic is suspended from being processed by the application in the container if there are other flows of messages being processed by other applications in the container. Furthermore, new flows of messages are prevented from being processed by the applications in the container. After processing the other flows of messages by the other applications in the container, the suspended flow of messages is now processed by the application in the container. In this manner, the risk of interference with other flows of messages in the container is avoided.


