Задание частично реализовано, поскольку учёба не позволила выделить больше времени на это задание.
Текущий проект создан на основе микросервисной архитектуры и состоит из следующих модулей:
- Модуль Switchboard - сервис, имитирующий коммутатор, который передаёт CDR файл в сервис BRT.
- Модуль BRT (Billing real time) - сервис, который авторизует пользователей и обновляет их баланс.
- Модуль HRS (High performance rate server) - сервис, который тарифицирует абонентов.
- Модуль CRM (Customer relationship management) - сервис, с помощью которого пользователи могут управлять своими данными (не реализован).
- Модуль Common - общие зависимости для выше перечисленных сервисов
Для передачи CDR, CDR+ и тарификационных файлов между Switchboard, BRT и HRS используется брокер сообщений Apache ActiveMQ Artemis. Таким образом, при выходе из строя любого из сервисов, данные, которые нужно обработать, не будут утеряны.