Код IT
← Каталог

mTLS, JWS-подпись webhooks и AsyncAPI с outbox — Шаг 1 — одна транзакция в БД

Фрагмент из «mTLS, JWS-подпись webhooks и AsyncAPI с outbox»: Шаг 1 — одна транзакция в БД.

sql projectencyclopedia7-06-proektirovanie-i-arhitektura-design-1172 embed URL статья в энциклопедии
SQL main.sql
BEGIN;
  UPDATE payouts SET status = 'completed', updated_at = now()
  WHERE id = 'po_7f3c9a2e';

  INSERT INTO outbox (id, aggregate_type, aggregate_id, event_type, payload, created_at)
  VALUES (
    'evt_01JABC123',
    'payout',
    'po_7f3c9a2e',
    'payout.completed',
    '{"payoutId":"po_7f3c9a2e","amount":{"value":"1500.00","currency":"RUB"},"status":"completed"}',
    now()
  );
COMMIT;
BEGIN;
  UPDATE payouts SET status = 'completed', updated_at = now()
  WHERE id = 'po_7f3c9a2e';

  INSERT INTO outbox (id, aggregate_type, aggregate_id, event_type, payload, created_at)
  VALUES (
    'evt_01JABC123',
    'payout',
    'po_7f3c9a2e',
    'payout.completed',
    '{"payoutId":"po_7f3c9a2e","amount":{"value":"1500.00","currency":"RUB"},"status":"completed"}',
    now()
  );
COMMIT;