Платёжный шлюз для финтех-платформы
Высоконагруженный платёжный шлюз на Laravel и Go: обработка платежей с гарантией идемпотентности и аптаймом 99,98%.
- PHP
- Laravel
- Go
- PostgreSQL
- +2
Технология
In-memory хранилище для кэша, очередей, сессий и счётчиков: низкая латентность и продуманная инвалидация.
Redis я применяю восемь лет как универсальный инструмент для всего, что требует субмиллисекундной задержки: кэширование, очереди, сессии, счётчики, ограничение частоты запросов и распределённые блокировки. Главная ценность Redis — хранение данных в оперативной памяти при богатом наборе структур: строки, хэши, списки, множества, упорядоченные множества, битовые карты, HyperLogLog и потоки (Streams). Правильный выбор структуры под задачу определяет и производительность, и удобство кода. Для кэширования я выстраиваю продуманную стратегию инвалидации: использую осмысленные ключи и пространства имён, теги для групповой инвалидации, разумные TTL и защиту от «штампующего стада» (cache stampede) через блокировки и раннее обновление. Я хорошо понимаю разницу между паттернами cache-aside, write-through и write-behind и выбираю подход исходя из требований к согласованности данных. Упорядоченные множества я применяю для рейтингов, отложенных задач и временных окон, потоки Redis — для надёжной обработки событий с группами потребителей и подтверждением доставки. Для ограничения частоты запросов реализую алгоритмы скользящего окна и token bucket с атомарностью через Lua-скрипты, что исключает гонки при высокой конкуренции. Распределённые блокировки строю аккуратно, с учётом времени жизни и токенов владения, понимая ограничения и риски подхода. В вопросах надёжности я различаю режимы персистентности RDB и AOF, настраиваю их под допустимый объём потери данных, использую репликацию и Redis Sentinel для отказоустойчивости, а Redis Cluster — для горизонтального шардирования при больших объёмах. Отдельно слежу за эксплуатационными метриками: потребление памяти, политика вытеснения (eviction policy), фрагментация, медленные команды через SLOWLOG. Важный принцип: Redis — это ускоритель, а не единственный источник истины, поэтому я проектирую систему так, чтобы её корректность не нарушалась при сбросе кэша. В связке с Laravel и Go Redis закрывает очереди, кэш и сессии, многократно снижая нагрузку на основную базу данных и удерживая отклик системы стабильным под пиковым трафиком.
Высоконагруженный платёжный шлюз на Laravel и Go: обработка платежей с гарантией идемпотентности и аптаймом 99,98%.
Единый API поверх десятка курьерских служб: расчёт стоимости, создание заказов и трекинг в реальном времени.
Сбор и обработка потока событий с дашбордами реального времени на Go, PostgreSQL и Redis.
Подписки, тарифы и автоматические списания с точным учётом денег и идемпотентными задачами.
Двусторонний маркетплейс исполнителей и заказчиков с поиском, заказами и безопасными сделками.