Transactional Outbox
En outbox sparar en ändring i verksamhetsdata och det utgående meddelandet tillsammans. En separat process publicerar meddelandet senare.
En Transactional Outbox sparar en ändring i verksamhetsdata och en beständig post för det utgående meddelandet i samma lokala databastransaktion. En separat process, en relay, läser posterna och publicerar dem till en meddelandebroker. Det täpper till luckan där databastransaktionen har lyckats men programmet aldrig når det efterföljande sändningsförsöket.
I ett fiktivt exempel får supportärendet S-27 statusen ”stängt”. Tjänsten sparar den nya statusen och händelsen E-27 tillsammans. Misslyckas transaktionen återställs båda ändringarna. Lyckas commit och tjänsten sedan kraschar ligger händelsen kvar för senare publicering.
Publicering och bearbetning är separata steg
Om relay-processen publicerar E-27 och kraschar innan resultatet sparas kan den publicera meddelandet igen. Mottagaren måste hantera upprepade leveranser säkert, exempelvis med en Transactional Inbox. En outbox ensam garanterar inte att effekten uppstår exakt en gång genom databas, broker och mottagare.
Bestäm hur väntande poster hittas, fel blir synliga och händelser för varje ärende vid behov publiceras i ordning. Även rensning och återstart behöver regler. CDC kan vara en teknisk grund för relay-processen; att fånga godtyckliga radändringar definierar inte i sig en verksamhetshändelse.
Källor
Relaterade begrepp
- DatabastransaktionEn databastransaktion samlar relaterade ändringar så att de sparas tillsammans eller återställs tillsammans.
- Transaktionell inboxEn transaktionell inbox använder beständiga meddelandeposter för att skydda lokal behandling mot dubbla leveranser.
- Change Data CaptureChange Data Capture registrerar databasändringar så att andra applikationer kan bearbeta dem.
- Server-Sent EventsServer-Sent Events skickar textmeddelanden från server till klient via HTTP, exempelvis om ett bakgrundsjobbs förlopp.
- ETagEn ETag identifierar en viss representationsversion av en HTTP-resurs och stöder villkorade hämtningar eller ändringar.
- Cross-Origin Resource SharingCORS styr webbläsarens åtkomst till svar från en annan origin. Det ersätter varken API-inloggning eller behörighetskontroll.
Ditt projekt med ASES
Beskriv ditt projekt för oss. Vi hör av oss med en första bedömning.