Transactional Outbox
Een outbox slaat een bedrijfswijziging en het bijbehorende uitgaande bericht samen op. Een apart proces publiceert het bericht later.
Een Transactional Outbox slaat een wijziging in bedrijfsgegevens en een duurzaam record van het uitgaande bericht in dezelfde lokale databasetransactie op. Een apart proces, de relay, leest die records en publiceert ze bij de message broker. Daarmee wordt het gat afgedekt waarin de databasetransactie slaagt, maar de toepassing niet meer aan de daaropvolgende verzendpoging toekomt.
In een fictief voorbeeld krijgt supportticket S-27 de status ‘gesloten’. De dienst slaat de nieuwe status en gebeurtenis E-27 samen op. Mislukt de transactie, dan worden beide wijzigingen teruggedraaid. Slaagt de commit en valt de dienst daarna uit, dan blijft de gebeurtenis opgeslagen voor latere publicatie.
Publiceren en verwerken zijn aparte stappen
Publiceert de relay E-27 en valt deze uit voordat het succes is vastgelegd, dan kan hetzelfde bericht opnieuw worden gepubliceerd. De ontvanger moet herhaalde afleveringen veilig verwerken, bijvoorbeeld met een Transactional Inbox. De outbox alleen garandeert geen precies eenmalig effect over database, broker en ontvanger heen.
Bepaal hoe u wachtende records vindt, fouten zichtbaar maakt en waar nodig de publicatievolgorde per ticket bewaart. Ook opschoning en hervatting vragen om regels. CDC kan de technische basis voor de relay vormen; willekeurige rijwijzigingen vastleggen definieert op zichzelf nog geen bedrijfsgebeurtenis.
Bronnen
Verwante begrippen
- DatabasetransactieEen databasetransactie bundelt samenhangende wijzigingen, zodat ze samen worden vastgelegd of teruggedraaid.
- Transactionele inboxEen transactionele inbox gebruikt duurzame berichtregistraties om lokale verwerking tegen dubbele afleveringen te beschermen.
- Change data captureChange data capture legt databasewijzigingen vast zodat andere toepassingen ze kunnen verwerken.
- Server-Sent EventsServer-Sent Events verstuurt tekstmeldingen van server naar client via HTTP, bijvoorbeeld over de voortgang van een achtergrondtaak.
- ETagEen ETag identificeert een bepaalde representatieversie van een HTTP-resource en ondersteunt voorwaardelijk lezen of wijzigen.
- Cross-Origin Resource SharingCORS regelt browsertoegang tot antwoorden van een andere origin. Het vervangt geen API-aanmelding of controle van toegangsrechten.
Uw project met ASES
Beschrijf ons uw project. We nemen contact met u op met een eerste inschatting.