RU

Spec-driven development в микросервисах, часть 3: archspec investigate — исследование фичи до кода

Третья, заключительная статья из цикла. Часть 1 — где LLM теряет межсервисный контекст и почему локальных спек недостаточно. Часть 2 — archspec как ко…

spec-driven developmentai-assisted developmentclaude codellmмикросервисыархитектура микросервисовservice contractsoutbox patternидемпотентностьcode review ai
Habr
RU

Eventual Consistency: как мы починили тормоза апрува и сломали бюджет

Мы убрали одну блокировку, чтобы апрувы перестали тормозить. Через несколько недель из-за этого клиент пробил квартальный бюджет – а наша система этог…

eventual consistencyсогласованность данныхCQRSоптимистичная блокировкаEF Coreпроекцииsagaидемпотентностьраспределённые системыread model
Habr
RU

Ecommerce на Laravel, или как мы собрали headless-слой для фронтов (6 часть)

В этой части собираем headless-слой для фронтов: Gateway, композицию API, SDK, ETag, SSR, идемпотентность и единые правила работы с запросами.  П…

headlesslaravelбитрикспрограммированиевеб-разработаgatewayapisdkидемпотентностьssr
Habr
RU

Idempotency keys: 5 граблей, которые мы поймали на проде

Пятница, 23:47. PagerDuty: “Платёж AmEx, провайдер вернул 5xx три раза подряд, билеты не зарезервированы.” Открываю логи – действительно три ответа пр…

идемпотентностьidempotencyплатежираспределённые системы.NETC#APIintent-keyrace conditionграбли
Habr
RU

Репликация по DDIA: что я понял, только когда сам сломал прод

В понедельник утром бухгалтер из клиентской компании написала мне в Telegram: «У контрагента в SAP всё оплачено, а в Smartup долг 12 миллионов». Я отк…

DDIAрепликацияmulti-leaderраспределённые системысинхронизация данныхSAP Business OneHANAконфликты репликацииlast-write-winsидемпотентность
Habr
RU

Очереди в микросервисах: 5 ошибок, которые приводят к дублям и потерям

Почему добавление второго consumer«а в очередь может привести к двойным списаниям? Разбираем на реальном кейсе: как один Topic сто…

очереди сообщениймикросервисыброкеры сообщенийRabbitMQKafkaJMSpublish-subscribecompeting consumersидемпотентностьDead Letter Queue
Habr
RU

Kafka, таксономии и удаление событий: как исключить обработку неактуальных сообщений

В рамках задачи по обработке XBRL-таксономий возникло требование: если таксономия удалена до обработки событий расчёта кэша, эти события не должны при…

kafkaspring bootSpring Kafkajavaмикросервисыtombstone objectsCompacted topiclog compactionconsumerидемпотентность
Habr
RU

Migration toolkit для 1С Битрикс: переносим аккаунт между инстансами через crm.*.list + идемпотентность по ORIGINATOR_ID

В предыдущей статье ( как отдавать лиды из Next.js в 1С Битрикс ) я показывал outbound‑интеграцию: сайт пишет лид к себе…

bitrix24миграция CRMREST APIидемпотентностьORIGINATOR_IDNode.jsTypeScript
Habr
RU

[Перевод] Паттерны событийно-ориентированной архитектуры в облачном банкинге: что работает, а что ломает систему

Событийно-ориентированная архитектура часто выглядит как аккуратная схема с брокером, сервисами и красивыми стрелками между ними. В продакшене всё про…

event-driven architectureedacloud-nativeбанковские системымикросервисыKafkaoutboxinboxидемпотентность