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

Postgres advisory locks на Neon ломаются от TCP-сброса. История четырёх фиксов retry-логики

Расскажу про четыре production-инцидента на одном куске кода за десять дней. В каждом я думал, что разобрался. Закончилось тем, что я выкинул pg_advis…

postgresqladvisory lockneonserverlessretryидемпотентностьdistributed lock
Habr
RU

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

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

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