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

Расскажу про четыре production-инцидента на одном куске кода за десять дней. В каждом я думал, что разобрался. Закончилось тем, что я выкинул pg_advisory_lock из retry-пути и поставил FOR UPDATE SKIP LOCKED . Day-generation лок остался advisory-ным, но утечка там не критична - почему именно, разберу в конце. Полезно, если у вас Postgres на Neon (или Supabase, или Aiven serverless) и где-то по коду есть session-scoped advisory locks для координации задач между репликами.

https://habr.com/ru/articles/1031236/

#postgresql #advisory_lock #neon #serverless #retry #идемпотентность #distributed_lock

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

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

Хабр

Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе

Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.

https://habr.com/ru/companies/otus/articles/1029182/

#Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go

Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе

Когда сервис, от которого вы зависите, начинает отвечать по 10 секунд вместо 50 миллисекунд, ваш сервис тоже начинает отвечать по 10 секунд. Горутины висят в ожидании, пул...

Хабр
Crown to decide whether to re-try woman accused of murdering her baby
A woman accused murdering her infant son more than four years ago in Ottawa may have to stand trial a second time. The Crown is now deciding what to do after a jury convicted her former partner of second-murder on Sunday but couldn't reach a unanimous verdict for her.
https://www.cbc.ca/news/canada/ottawa/crown-to-decide-whether-to-re-try-woman-accused-of-murdering-her-baby-9.7178400?cmp=rss

Spring, kafka, неблокирующий retry, лаги

История об особенностях использования механизмов retry , которые дает spring-kafka из коробки и проблемах с производительностью. Есть нужно сделать асинхронный retry сообщений на топике, который бы не блокировал основной поток сообщений «легко и быстро» — вам сюда😊 (А потом после «легко и быстро» несколько дней дебажить 🤔 )

https://habr.com/ru/articles/1018174/

#java #springboot #kafka #retry #scheduler

Spring, kafka, неблокирующий retry, лаги

Всем привет! Хочу рассказать об особенностях использования механизмов retry, которые дает spring для kafka из коробки. У нас java-21 , spring-boot-3.2 , kafka-3.7 , spring-kafka-3.1.x Сразу должен...

Хабр

Когда стойка умирает, а 5xx остаётся нулевым. Разбор скрытой деградации PostgreSQL

09:12 — db-replica-02 connection timeout HTTP 5xx = 0.2% HAProxy зелёный p50 = 38-42ms Replica в другой стойке недоступна Отказоустойчивость потеряна Инцидент не объявлен Читать разбор

https://habr.com/ru/articles/1002056/

#PostgreSQL #отказоустойчивость #деградация #retry #HAProxy #PgBouncer #ToR #инцидент #latency #SRE

Когда стойка умирает, а 5xx остаётся нулевым. Разбор скрытой деградации PostgreSQL

Иногда инцидент начинается не с 5xx и не с красного графика Он начинается с одной стойки И с одного таймаута 09:12 - alert: db-replica-02 connection timeout HAProxy зелёный HTTP 5xx = 0.2% p50 =...

Хабр

Я почувствовал себя клоуном, подключая 5 библиотек ради устойчивого API-клиента

Если ваш API-клиент выглядит как башня декораторов — вы уже в зоне инженерной боли. Рассказываю, как я из этого выбрался.

https://habr.com/ru/articles/993206/

#python #resilence #api #retry #circuit_breaker

Я почувствовал себя клоуном, подключая 5 библиотек ради устойчивого API-клиента

Поэтому я написал одну, которая объединяет всё. Когда простой API-клиент превращается в зоопарк Любой проект начинается с чего-то такого: import httpx async def fetch_user(user_id: str): async with...

Хабр

Одно кольцо, чтобы повелевать остальными: собираем лимитирование, ретраи и circuit breaker в одной библиотеке

Я чувстовал себя клоуном подключая 5ю библиотеку для написания устойчивого к ошибкам API клиента. После этого я написал библиотеку объединяющую все воедино. Мотивация и история архитектурных решений.

https://habr.com/ru/articles/992902/

#отказоустойчивость #отказоустойчивые_решения #отказоустойчивые_системы #отказоустойчивая_архитектура #python #ratelimiting #retry #pypi

Одно кольцо, чтобы повелевать остальными: собираем лимитирование, ретраи и circuit breaker в одной библиотеке

Я чувстовал себя клоуном подключая 5ю библиотеку для написания устойчивого к ошибкам API клиента. После этого я написал библиотеку объединяющую все воедино. Мотивация и история архитектурных решений....

Хабр