Transactional Outbox
En outbox lagrer en endring i forretningsdata og den utgående meldingen samlet. En separat prosess publiserer meldingen senere.
En Transactional Outbox lagrer en endring i forretningsdata og en varig oppføring for den utgående meldingen i samme lokale databasetransaksjon. En separat prosess, en relay, leser oppføringene og publiserer dem til en meldingsbroker. Det tetter gapet der databasetransaksjonen har lykkes, men programmet aldri kommer til det etterfølgende sendeforsøket.
I et fiktivt eksempel får supportsaken S-27 statusen «lukket». Tjenesten lagrer den nye statusen og hendelsen E-27 sammen. Mislykkes transaksjonen, rulles begge endringene tilbake. Lykkes commit og tjenesten deretter krasjer, blir hendelsen liggende for senere publisering.
Publisering og behandling er separate trinn
Hvis relay-prosessen publiserer E-27 og krasjer før resultatet lagres, kan den publisere meldingen på nytt. Mottakeren må håndtere gjentatte leveringer trygt, for eksempel med en Transactional Inbox. En outbox alene garanterer ikke at virkningen oppstår nøyaktig én gang på tvers av database, broker og mottaker.
Fastsett hvordan ventende oppføringer finnes, feil blir synlige og hendelser for hver sak ved behov publiseres i rekkefølge. Opprydding og omstart trenger også regler. CDC kan gi et teknisk grunnlag for relay-prosessen; å fange opp vilkårlige radendringer definerer ikke i seg selv en forretningshendelse.
Kilder
Beslektede begreper
- DatabasetransaksjonEn databasetransaksjon samler relaterte endringer slik at de lagres samlet eller rulles samlet tilbake.
- Transaksjonell inboxEn transaksjonell inbox bruker varige meldingsregistreringer for å beskytte lokal behandling mot doble leveringer.
- Registrering av dataendringerRegistrering av dataendringer fanger opp databaseendringer slik at andre applikasjoner kan behandle dem.
- Server-Sent EventsServer-Sent Events sender tekstmeldinger fra server til klient via HTTP, for eksempel om fremdriften til en bakgrunnsjobb.
- ETagEn ETag identifiserer en bestemt representasjonsversjon av en HTTP-ressurs og støtter betingede oppslag eller endringer.
- Cross-Origin Resource SharingCORS styrer nettleserens tilgang til svar fra en annen origin. Det erstatter verken API-innlogging eller kontroll av rettigheter.
Ditt prosjekt med ASES
Beskriv prosjektet ditt for oss. Vi tar kontakt med en første vurdering.