Наша платформа состоит из системы модулей и постоянно развивается. Мы разрабатываем сервисы для сбора и обработки большого объёма данных.
Главная задача направления — развитие существующих программных продуктов и разработка новых решений.
Языковая база и фреймворки- Java 11;
- Spring (Cloud, Boot, Security, Data);
- система сборки — Maven;
- Lombok и Mapstruct (для снижения boilerplate-кода).
Принципы и парадигмы разработки- принципы SOLID;
- AOP-парадигма (активное использование, множество собственных аннотаций).
Архитектура и инструментыИспользуем микросервисную архитектуру на базе собственной платформы:
- Стандартизированные абстракции для работы с объектами;
- Собственный RPC на уровне интерфейсов (бесшовная связь между сервисами);
- GraphQL в качестве API gateway + свои кастомные надстройки для стандартизированного доступа к данным из разных микросервисов:
— единый механизм фильтрации\сортировки\пагинации;
— централизованная проверка прав доступа;
— декларативное описание связей объектов в системе (аналог JPA на уровне микросервисов).
- Асинхронного взаимодействие, обмен событиями, Event Sourcing, асинхронный процессинг телеметрии. (Kafka\DuckDB).
Хранение и обработки данных:- MariaDB — реляционные данные;
- MongoDB — кеши/индексы процессинга;
- ClickHouse — хранилище телеметрии;
- Kafka — процессинг телеметрии и обмен событиями;
- DuckDB — быстрые in-memory кеши, замена ClickHouse и Kafka на уровне буровой.