Server Architecture#
Server is not a single program, but a distributed service composed of multiple programs involved. The following services are involved:
Main Service: OurChat server
This is a single node, which can handle almost all basic requests, can run normally without discarding other components, is the main core service of the distributed system, and can also be deployed separately
Is responsible for handling HTTP requests, such as email verification
Experimental Matrix support is also handled by this node
Load Balancer
Is responsible for evenly distributing requests and traffic to nodes
Rabbitmq: Message Queue
Middleware for message passing between different nodes
Redis: In-memory database
For high-performance caching
PostgreSQL: Database
For persistent data