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