«Два стула» для данных: как мы боремся с рассинхроном в Rust-сервисе между Solana и PostgreSQL

Представьте: вы строите систему верификации дипломов. Требования простые — данные должны быть неизменяемыми (привет, блокчейн) и при этом быстро доступными для запросов (привет, PostgreSQL). Казалось бы, идеальное решение — писать в оба хранилища. Но дьявол, как всегда, кроется в деталях. Наш проект использует паттерн двойной записи (Dual-Write): Solana — гарантирует неизменность и прозрачность данных о выданных дипломах PostgreSQL (Supabase) — обеспечивает быстрые выборки и сложные запросы Звучит красиво на архитектурных диаграммах, но в production всё не так радужно. Главная проблема — частичные сбои . Транзакция в Solana прошла успешно, диплом записан в блокчейн навечно, а вот запись в PostgreSQL упала. Пользователь получил подтверждение, но половина системы о его дипломе не знает. Сегодня я покажу, как мы столкнулись с этой проблемой лицом к лицу и какие паттерны применили для её решения. Чтобы стулья не разъехались

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

#rust #postgresql #solana #dualwrite #web3 #распределенные_системы #transactional_outbox #saga_pattern #консистентность_данных #архитектура

«Два стула» для данных: как мы боремся с рассинхроном в Rust-сервисе между Solana и PostgreSQL

Введение: два источника правды - одна большая проблема Представьте: вы строите систему верификации дипломов. Требования простые - данные должны быть неизменяемыми (привет, блокчейн) и при этом быстро...

Хабр