Перейти к основному содержимому

Стек Технологий

Frontend

Backend

Инфраструктура

  • Kubernetes + Helm
  • Jenkins/GitlabCI
  • Prometheus + Grafana
  • Elasticsearch + Kibana, Vector

Как это складывается вместе

Ensi устроена как набор относительно независимых backend-сервисов и тонких GUI/BFF-слоёв над ними. Пользовательские и административные интерфейсы живут на Next.js и React.

Сами сервисы пишутся на PHP (Laravel + Octane/Swoole) или на Go (Goravel). Выбор языка зависит от сервиса, но модель одна: контракт API описывается в OpenAPI, по нему генерируются серверный каркас и клиенты к соседям, а устойчивое состояние лежит в PostgreSQL. Redis нужен для кешей и внутренних очередей задач внутри сервиса. Для быстрого и гибкого поиска по каталогу товаров используется в Elasticsearch. События между сервисами — изменение сущностей, команды на пересчёт — идут через Kafka.

В проде сервисы работают в k8s. Jenkins или GitlabCI собирает образ, гоняет тесты и вызывает helm upgrade для перезапуска приложения с обновлённым образом и настройками.