TGViewer
Разработка с Дарьей Матвеевой Разработка с Дарьей Матвеевой @system_design_explained · 72 subscribers
Post #70 70
Читаю в последнее время много критики микросервисов, и у меня тоже есть пример, как раз занималась в последнее время:

Есть два микросервиса, А и B. В обоих применяются паттерны message и outbox. Реализация этих паттернов для двух севрисов изначально была одинаковая – сохраняем входящее сообщение, извлекаем из БД с использованием scheduled job, пытаемся обработать, отправляем в другую систему, используя ее API. Но принципиальная разница в том, что сервис А просто преобразовывает сообщение и отправляет в другую систему, а сервис B перед отправкой выполняет сложную логику бухгалтерского учет по данным из входящего сообщения.

Но при реализации было принято решение сделать общую библиотеку для двух сервисов. И реализация со временем стала обрастать различными условиями, параметрами, нужными для сервиса B. Но они были совсем не нужны в сервисе A, и даже ломали его логику время от времени.

Поэтому спустя 2 года пришлось убирать зависимость на общую библиотеку из сервиса A. Но т.к. время ограничено, а в приоритете всегда бизнес-фичи, то не было возможности провести полноценный рефакторинг и выделить именно тот код, который нужен в сервисе A. Пришлось просто скопировать классы из библиотеки в сервис A, занеся лишний функционал, который там не используется. Благо код был покрыт тестами, и процессинг не сломался.
More from @system_design_explained
  1. Sep 22, 2026Нашла способ, который мгновенно и без дополнительных усилий увеличил мою продуктивность пр…
  2. Mar 27, 2026Я в ВК : https://vk.ru/dev_with_dm
  3. Mar 4, 2026В функциональных языках рекомендуется делать все объекты immutable, и, хотя на работе я пи…
  4. Dec 4, 2025Недавно занималась задачей, где нужно было реализовать оптимистическую блокировку сущности…
  5. Nov 21, 2025Обнаружила еще один плюс TDD. Согласно подходу, я пишу тест, который падает, пишу код, что…
  6. Nov 13, 2025Недавно столкнулась с ситуацией — один из сервисов на тестовом стенде не вычитывал сообщен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →