Cloud Messaging System with Persistent Websocket Connections
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current cloud-based messaging systems lack fault tolerance, scalability, and bi-directional communication capabilities, leading to high latency and the inability to support various web standards without complex firewall or VPN configurations.
Innovation Solution
The system employs multiple messaging system instances with publish/subscribe channels and websocket connections for high-performance, high-availability, and scalability, enabling bi-directional communication and low latency without requiring special network configurations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional cloud-based messaging systems are used, then basic messaging functionality is provided, but the system lacks fault tolerance and scalability
Solution Approach 1:
The messaging system is divided into multiple independent messaging system instances, each capable of handling messages independently. This segmentation allows the system to maintain fault tolerance since failure of one instance does not affect others, while also improving scalability by allowing individual instances to be added or removed based on load requirements.
Solution Approach 2:
A registry component is introduced as an intermediary that maintains mappings between on-premise connector endpoints and messaging system instances. This mediator enables dynamic message routing without requiring complex peer-to-peer configuration between components, simplifying the overall system architecture while enhancing reliability through centralized coordination.
2Adaptability or versatility
If traditional messaging systems are used, then messaging functionality is provided, but bi-directional communication capabilities are lacking
Solution Approach 1:
The messaging system instances are designed to handle both incoming and outgoing messages through a unified websocket connection framework. Each instance can simultaneously act as a client receiving messages from on-premise connectors and as a server sending messages to them, providing bi-directional communication capabilities without requiring separate communication channels or protocols.
3Speed
If traditional messaging systems are used, then basic communication is supported, but high latency occurs due to network overhead
Solution Approach 1:
Persistent websocket connections are established between messaging system instances and on-premise connectors, maintaining continuous open channels for communication. This eliminates the need for repeated connection handshakes and protocol negotiations for each message, significantly reducing network overhead and latency while improving message transmission speed.
4Adaptability or versatility
If traditional messaging systems are used, then messaging functionality is provided, but the system cannot support various web standards without complex firewall or VPN configurations
Solution Approach 1:
The messaging system uses standard websocket connections that operate over conventional HTTP/HTTPS ports, allowing the system to traverse firewalls and network configurations automatically without requiring special VPN setups or complex firewall rules. The websocket protocol itself handles the connection establishment and maintenance, making the system adaptable to various web standards and network environments.
Data Source
Figure 1A
Figure 1B
Figure 1C~1D
AI summary
Described embodiments may provide messages via websocket connections. A messaging system may maintain, on a first network, via the messaging system instances, a plurality of persistent websocket connections between each of a plurality of on-premise connectors and each messaging system instance. The messaging system may receive a message to be sent to an endpoint on a second network of an on-premise connector of the plurality of on-premise connectors. The messaging system may identify, via a registry associating on-premise connector endpoints to messaging instances, a messaging system instance of the plurality of messaging system instances via which to send the message to the endpoint. The messaging system instance may maintain the websocket connection to the on- premise connector in communication with the endpoint. The messaging system instance may transmit the message to the endpoint via the websocket connection to the on-premise connector.