Не теория, а практический опыт: как мы внедряли отказоустойчивость в лотереях

О паттернах отказоустойчивой архитектуры написано уже немало. Но когда дело доходит до реальных кейсов, особенно в специфических отраслях вроде лотерейной — информации почти нет. А ведь здесь, как и в любой высоконагруженной системе, отказоустойчивость — не просто галочка в ТЗ, а вопрос пользовательского доверия и бизнес-репутации. В этой статье расскажем, как мы в «Столото» подошли к проектированию Lottery Payment System. Это полностью вымышленный сервис для выплат выигрышей, построенный на опыте реальных вызовов и ограничений для того, чтобы на его примере описать, как работают ключевые паттерны отказоустойчивой архитектуры: Retry, Idempotency Key, Deadlines, Rate Limit и Circuit Breaker . Также покажем, как они применяются в контексте распределённой системы, которая должна стабильно работать, даже когда вокруг всё пошло не по плану. В нашем вымышленном сценарии мы представили, что компания прошла через архитектурную трансформацию и решила переосмыслить доменные области. Слишком громоздкий и хрупкий процессинг тормозил развитие. В какой-то момент он стал похож на башню из кубиков, которую боишься задеть. Поэтому мы выбрали путь здорового прагматизма — выплаты вынесли в отдельный сервис, чтобы дать этому направлению и стабильность, и простор для развития. В зоне его ответственности — всё, что связано с переводами пользователям, которые хотят получать выигрыши по лотерейным билетам и исполнять свои мечты. Будет немного архитектуры, чуть-чуть лирики и много практики. Это не скучный туториал — это живая история гипотетического продукта, в котором отказоустойчивость стала краеугольным камнем. Если вы работаете с высоконагруженными системами, и вам важно, чтобы ваши системы не падали — добро пожаловать.

https://habr.com/ru/companies/stoloto/articles/934492/

#архитектура #высоконагруженные_проекты #высокая_производительность #отказоустойчивость #отказоустойчивые_системы #ит_система

Не теория, а практический опыт: как мы внедряли отказоустойчивость в лотереях

О паттернах отказоустойчивой архитектуры написано уже немало. Но когда дело доходит до реальных кейсов, особенно в специфических отраслях вроде лотерейной — информации почти нет. А ведь здесь, как и в...

Хабр

Не Pgbouncer, но пулер. Не Odyssey, но с корутинами

Если вы настраивали отказоустойчивый кластер Postgres, то сталкивались с необходимостью перенаправления пользовательского трафика на пишущий узел после аварии на основном узле и переключения на резервный. Мы разработали расширение Proxima, которое снимает необходимость в настройке и администрировании дополнительного программного обеспечения. Разработчик программного обеспечения Postgres Professional Тофиг Алиев расскажет, как мы делали Proxima, какие архитектурные решения заложены в расширение, почему мы выбрали именно такой подход. Разберет тонкости реализации, которые позволили нам обрабатывать более 10 тысяч одновременных клиентских сессий. Рассмотрит примеры использования и ответит на вопросы.

https://habr.com/ru/companies/postgrespro/articles/927034/

#высоконагруженные_проекты #высокая_нагрузка #высокая_производительность #highload #высокая_доступность #postgresql #proxima #biha #postgres_pro

Не Pgbouncer, но пулер. Не Odyssey, но с корутинами

Аннотация к докладу: Если вы настраивали отказоустойчивый кластер Postgres, то сталкивались с необходимостью перенаправления пользовательского трафика на пишущий узел после аварии на основном узле и...

Хабр

Практическое использование Kafka в микросервисных приложениях на примере Open Source платформы Ensi

Микросервисная архитектура позволяет разрабатывать высоконагруженные, распределенные и гибкие приложения. Но цена разработки таких систем очень высока, и решая выше указанные проблемы, разработчики сталкиваются с другими проблемами, которых либо нет в монолитных приложениях, либо они не так сильно в них проявляются: сложный обмен данными между сервисами , денормализация и консистентность данных , инвалидация кэша и интеграция с внешними системами . Решать выше перечисленные проблемы можно разными способами. В своей работе в компании Greensight в качестве senior backend developer при разработке заказных проектов на базе Open Source платформы Ensi, я с коллегами перепробовал множество решений. Данная статья описывает практическое использование Kafka в микросервисных приложениях для решения этих проблем.

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

#Kafka #микросервисы #Ensi #ecom #laravel #высоконагруженные_проекты #распределенные_системы #open_source

Практическое использование Kafka в микросервисных приложениях на примере Open Source платформы Ensi

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

Хабр

СУБД Tantor Postgres 17.5: обзор улучшений для 1С

Новый релиз СУБД Tantor Postgres 17.5 насыщен обновлениями во всех основных аспектах: усиление безопасности, повышение общей производительности, новые расширения, а также инфраструктурные улучшения. Сегодня мы проведем обзор изменений, касающихся работы с высоконагруженными системами 1С. Релиз предлагает не просто несколько точечных исправлений, а целый арсенал специализированных функций, призванных существенно ускорить выполнение типичных для 1С операций, снизить нагрузку на инфраструктуру и упростить администрирование. Спектр улучшений распространился на многие ключевые узлы производительности от оптимизации работы с временными таблицами и сложными запросами RLS (row-level security) до ускорения критически важных процессов наподобие «Закрытия месяца». Обо всем этом и пойдет речь в статье.

https://habr.com/ru/companies/tantor/articles/924978/

#tantor_postgres #1c #postgresql #высокая_производительность #высоконагруженные_проекты #высоконагруженные_приложения

СУБД Tantor Postgres 17.5: обзор улучшений для 1С

В июне 2025 г. «Тантор Лабс» представила СУБД Tantor Postgres версии 17.5. Новый релиз насыщен обновлениями во всех основных аспектах: усиление безопасности (Transparent Data Encryption...

Хабр

Шардируй меня полностью

Пришло время заключительной статьи проекта Mireapay, в этой последней статье программы минимум автор расскажет о том, как шардировать сервисы и какие варианты возможны. Но что самое главное, как это сделать просто и не тратить лишнее время на разработку в дальнейшем. Фотографировать

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

#java #postgresql #шардирование #высокая_производительность #высоконагруженные_проекты #kubernetes #платежная_система

Шардируй меня полностью

Введение В предыдущей статье автор вкратце рассказал о шардировании, теории и предложил инструменты для обеспечения этого процесса не только для очередей сообщений, но так же и rest api, используемого...

Хабр

Шардировать или не шардировать

Если ваш сервис рассчитан на миллиарды пользователей, то несомненно возникнет вопрос о масштабировании. Ранее, автор уже рассмотрел способ масштабирования через партицирование. В данной статье рассмотрим шардирование сервиса Баланс дабы обеспечить его работу с миллиардами пользователей без необходимости использовать суперкомпьютеры, а при желании вовсе запускать на "кофеварках". В чём вопрос?

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

#java #postgresql #шардирование #высокая_производительность #высоконагруженные_проекты #kubernetes

Шардировать или не шардировать

Введение Применительно к платежным системам шардирование является важной возможностью, позволяющей делать гетерогенные сервисы. Например, очевидно, что пользователи у платежной системы будут...

Хабр

Алгоритмы консенсуса Paxos, Raft и Zab в распределённых системах

В распределённых системах критически важно обеспечить консенсус – согласованность данных или решений между множеством узлов (серверов), даже при сбоях и задержках сети. Алгоритмы консенсуса позволяют группе несовершенных узлов действовать как единое надёжное целое. Три классических алгоритма – Paxos , Raft и Zab – стали основой для построения отказоустойчивых систем. Они гарантируют, что при наличии кворума узлов (обычно большинства) все узлы придут к единому решению и последовательности операций, сохраняя консистентность данных. В данной статье мы рассмотрим устройство этих алгоритмов «под капотом», их этапы (выбор лидера, репликация журнала, обработка сбоев и восстановление), области применения в реальных системах (от координаторов в кластерах Kubernetes и Apache Kafka до распределённых баз данных), а также сравним готовые реализации (такие как etcd, ZooKeeper, Consul и др.) по ключевым характеристикам.

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

#paxos #raft #микросервисы #sql #nosql #распределенные_системы #высоконагруженные_проекты #высоконагруженные_приложения #высокая_доступность #высокая_нагрузка

Алгоритмы консенсуса Paxos, Raft и Zab в распределённых системах

Введение В распределённых системах критически важно обеспечить консенсус – согласованность данных или решений между множеством узлов (серверов), даже при сбоях и задержках сети. Алгоритмы консенсуса...

Хабр

Настройка Apache Kafka для высоконагруженных систем

Apache Kafka является одной из самых популярных платформ для обработки потоков данных, обеспечивая высокую пропускную способность и низкие задержки при передаче сообщений. В высоконагруженных системах, где необходимо обрабатывать миллионы сообщений в секунду, важность правильной настройки Kafka трудно переоценить. Без оптимизации её параметров можно столкнуться с серьёзными проблемами, такими как рост задержек, потеря сообщений и переполнение очередей. Эффективная настройка Kafka критична для обеспечения бесперебойной работы в условиях высокой нагрузки и стабильной обработки данных в реальном времени. Цель этой статьи — рассмотреть основные аспекты настройки Apache Kafka, которые влияют на производительность системы. Мы сосредоточимся на оптимизации параметров брокеров и продюсеров для достижения максимальной пропускной способности, минимальных задержек и надежности. Также рассмотрим важность мониторинга и тестирования системы для своевременного выявления и устранения узких мест.

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

#apache_kafka #nosql #распределенные_системы #высоконагруженные_проекты #высокая_производительность #highload #высокая_нагрузка #высоконагруженные_приложения #высокая_доступность

Настройка Apache Kafka для высоконагруженных систем

Введение Apache Kafka является одной из самых популярных платформ для обработки потоков данных, обеспечивая высокую пропускную способность и низкие задержки при передаче сообщений. В высоконагруженных...

Хабр

Нативный non-blocking I/O через Linux Epoll: создание C-расширений для Python

Привет, Хабр! Если вам приходилось писать высоконагруженные сетевые приложения на Python, то вы, скорее всего, сталкивались с тем, что стандартные механизмы работы с вводом‑выводом — select() , poll() и даже asyncio — не справляются с большой нагрузкой. select() быстро превращается в бутылочное горлышко из‑за линейной сложности O(N), poll() всё ещё требует перебора всех файловых дескрипторов, а asyncio, хоть и удобен, но не всегда даёт ту производительность, которую можно получить, если работать напрямую с системными вызовами. Здесь, на мой взгляд хорошо подойдет epoll — механизм в Linux, который позволяет асинхронно отслеживать события на файловых дескрипторах без постоянного опроса .

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

#python #highload_architect #высоконагруженные_проекты #linux

Нативный non-blocking I/O через Linux Epoll: создание C-расширений для Python

Привет, Хабр! Если вам приходилось писать высоконагруженные сетевые приложения на Python, то вы, скорее всего, сталкивались с тем, что стандартные механизмы работы...

Хабр

RabbitMQ в dBrain: опыт внедрения в платформу контейнеризации

В статье рассматриваем, как RabbitMQ интегрирован в dBrain, какие операторы использовались для управления кластерами, а также с какими проблемами разработчики столкнулись в процессе внедрения.

https://habr.com/ru/companies/dbraincloud/articles/875366/

#брокер_сообщений #rabbitmq #kafka #микросервисы #высоконагруженные_проекты #контейнеризация #платформа #кластеры #брокер #сообщения

RabbitMQ в dBrain: опыт внедрения в платформу контейнеризации

Брокер сообщений RabbitMQ используется в современных архитектурах микросервисов и распределенных системах. Это сервис, который полезен для высоконагруженных проектов в области банковской деятельности,...

Хабр