Веб-приложение социальной сети, реализованное в виде микросервисов. Реализовано 2 микросервиса:
- auth_microservice(регистрация, аутентификация, авторизация, создание профиля, написание постов, создание групп, добавление\удаление\просмотр списка друзей, постов, групп, админка), паттерн репозиторий
- server_microservice(создание статей, мероприятий, гостей и билетов, лента новостей, паттерн DDD
- Микросервисы соединены друг с другом через RabbitMQ.
- FastAPI
- SQLAlchemy
- Alembic
- Postgresql
- Redis
- Rabbitmq
Связь микросервисов осуществляется с помощью aio-pika, в первом микросервисе класс рэббита и класс rpc находятся в auth_microservice/src/configuration/broker.py. Во втором в server_microservice/app_src/infrastructure/broker/rabbit_handler.py Подключение к рэббиту выполняется при старте каждого микросервиса, путем lifespan. Реализация rpc.call() следующая:
- В сервисе новостей (server_microservice/app_src/services/feed_service.py) происходит вызов функции возврата списка профилей и групп в другом микросервисе.