/chattifier-backend

System for real-time chat messaging

Primary LanguageJava

Chattifier Backend

Chattifier Backend - is a scalable Spring Cloud project for real-time message exchange

It consists of the following components

  • Spring Cloud Servers

    • Config Server - loads configuration of each service, so that every microservice can load its own config upon deployment and at runtime
    • Eureka Service Locator - running services register themselves into the registry
    • Admin Server - interacts with the discovered services' Actuator to monitor them
    • Gateway - secured API entry point which authenticates and authorizes users, proxies requests and forwards credentials to the services
  • Chat Services

    • Message Processing Service - handle user-sent messages
    • Message Delivery Service - distribute the messages destined to the client
    • Message Archive Service - load all/read messages
  • User Services

    • User Registration Service - create account for new users
    • User Search Service - search for users to send messages

Images could be built using docker-create-images.sh to create and docker-push-images.sh to push them.

TODO:

dev
  • Migrate timestamp storage from MongoDB to Redis
deploy
  • K8s cloud deploy
  • Threads profiling
  • Stress Testing
  • Load testing
  • Autoscaling testing
  • Additional chat services