in English

Info

Проект WIP, поэтому описание с пустотами.

SVFM adapter

Question

Есть система - какая? Что в ней особенного, что потребовался адаптер?

Есть ряд требований, которые идеально группируются именно в адаптер.

Перекладывалка жсонов из Rabbit в REST системы, которой требуется дорогая доработка от вендора чтобы научить её подключаться к нескольким рэббитам и разным Virtual Host рэббита. По сути это адаптер для целевой системы. Пропадёт целевая система, пропадёт нужда и в этом адаптере.

Я сделал паралелелизм, а не concurrency за счёт поднятия всей инфры

Сложность в том что источников 15 штук и приёмников 15 штук. REST в Spring на аннотациях не покатит - придётся хардкодить. Программно сделал слушателей и целевые ендпоинты, без хардкода. Программное конформное конфигрурирование ендпоинтов под то что задекларировано в конфиге.

Целевая система не умеет ходить по рестам за данными, поэтому добавил дообогащение.

ну и Circuit Breaker, который выключает Rabbit Listener чтобы fail-fast’ом падало и не аффектило целевую систему.

Question

По дефолту Spring не умеет чего?

Spring как ни странно тоже из коробки не умеет в кластеры, поэтому тут и пригодилось вышеописанное программное декларирование ендпоинтов.

One-go achievements

TBD

Role

TBD

Repetitive practices

TBD

Technicalities

  • CCU: 5000 RPS (synthetic), 2 инстанса баланированных F5;
  • Архитектура: Hexagonal Architecture, разделение ответственностей, модульный микросервис, DDD;
  • patterns: active-active, adapter, , singleton, factory, tail-based sampling, AMQP;

Teamplay

TBD

Stack

  • RabbitMQ
  • Spring (core, web, AOP), resilience4j;
  • Docker compose;
  • SQL via Posgres 17, liquibase, hibernate;
  • micrometer, Grafana;
  • slf4j, log4j2;
  • jobrunnr
  • TeamCity, git, bitbucket, SonarQube;

Showing 20 of 20 entries
TechnologyStartedEnded
java 212025-10-15
slf4j + log4j22025-10-15
SonarQube2025-10-15
Spring AOP2025-10-15
Spring boot 32025-10-15
Spring IoC2025-10-15
Docker compose2025-10-15
git2025-10-15
gradle2025-10-15
Grafana2025-10-15
Jackson2025-10-15
Java 21 (w/ concurrency API)2025-10-15
JUnit2025-10-15
linux2025-10-15
Liquibase2025-10-15
micrometer2025-10-15
Mockito2025-10-15
resilience4j2025-10-15
SQL2025-10-15
Wiremock2025-10-15