Проект разработан мной с нуля для рекрутингового агенства ScoutJobs.
Информация хранится в разных источниках: Админ панель ScoutJobs, Google Sheets, Helpdesk Eddy, Salesforce, Amo CRM.
Одна и таже информация может быть отредактирована любым из источников или же несколькими одновременно.
Основные цели проекта:
- Синхронизировать данные во всех источниках в реальном времени.
- Сделать защиту данных, которая будет находить конфликты, не допускать повреждения данных, логировать проблемы и оповещать о них.
- Спроектировать систему так, чтобы при росте нагрузки ее можно было легко масштабировать.
- Сделать возможность легкого подключения новых источников данных.
- Предусмотреть оба сценария - когда источник может сам оповещать об изменениях и когда изменения можно получить только самостоятельно отправив запрос.
- Разработать способ быстрого конфигурирования полей которые нужно синхронизировать (типы данных, проверка на конфликты, настройки).
- Разработать систему плагинов для простого расширения функционала полей которые нужно синхронизировать.
Использованные технологии: Python, FastAPI, SqlAlchemy, Multiprocessing, Alembic, RabbitMQ, PostgreSQL, Микросервисная архитектура, pytest, Docker
Интеграция API: Google Sheets, Helpdesk, Salesforce, AMO CRM