Kai — domenemodell og aggregater

Kai — domenemodell og aggregater An architecture diagram generated by Archify. Verdiobjekter · Søker · Støttebeløp · Resultat · Architecture component · + Prosjektperiode, Organisasjon Verdiobjekter Søker · Støttebeløp · Resultat + Prosjektperiode, Organisasjon Sak · Aggregatrot · SakId · Architecture component · replika — ingen invarianter Sak Aggregatrot · SakId replika — ingen invarianter Gjennomgang · Stadie- og regel-gjennomgang · Architecture component · menneskeskapt · modul Reviews Gjennomgang Stadie- og regel-gjennomgang menneskeskapt · modul Reviews Virkemiddel · Masterdata + Søknadsrunde · Architecture component · replika · modul Virkemidler Virkemiddel Masterdata + Søknadsrunde replika · modul Virkemidler Beslutning · Entitet · menneskeskapt · Architecture component · må aldri gå tapt Beslutning Entitet · menneskeskapt må aldri gå tapt Risikopolicy · Application · policy-record · Application — domeneregler som er tunbare · avgjør om regel krever gjennomgang Risikopolicy Application · policy-record avgjør om regel krever gjennomgang Regel · Aggregatrot · RegelId · Version · Architecture component · DefinitionJson + Inputkontrakt Regel Aggregatrot · RegelId · Version DefinitionJson + Inputkontrakt Regelresultat · Aggregatrot · RegelresultatId · Architecture component · invariant: minst ett regelutfall Regelresultat Aggregatrot · RegelresultatId invariant: minst ett regelutfall Samlestatuspolicy · Application · policy-record · Application — domeneregler som er tunbare · utleder Samlestatus Samlestatuspolicy Application · policy-record utleder Samlestatus RegelEvalueringsResultat · Verdiobjekt · Verdict + Reason · Architecture component · Overstyringsspor når overstyrt RegelEvalueringsResultat Verdiobjekt · Verdict + Reason Overstyringsspor når overstyrt består av CaseKey + StageKey vurderes mot bestemmer regler risikoakser frosset versjon krever ≥ 1 overstyrer verdict + beslutning Application — domeneregler som er tunbare Legend Aggregatrot Entitet Verdiobjekt Policy (Application) Replika av oppstrøms

Aggregater

  • • Bare Sak, Regel og Regelresultat arver Aggregate<TId> — resten er entiteter uten egen rot
  • • Regelresultat.Create() håndhever invarianten: minst ett regelutfall, og facts-hash, schema- og engine-versjon må være satt

Systemgenerert vs menneskeskapt

  • • Regelresultat og fakta er systemgenerert; Beslutning, gjennomgang og Arbeidsmarkering er menneskeskapt tilstand
  • • En Beslutning overstyrer ett enkelt regelutfall — resultatet regnes på nytt, beslutningen består

Replika

  • • Sak, Vurdering, VirkemiddelMasterdata og ErsStatus er replikaer av ERS — derfor har Sak bare FraReplika/OppdaterFraReplika og ingen invarianter
  • • Regelresultat peker på SakId; Beslutning og gjennomgang identifiserer saken med CaseKey + StageKey

Domain events

  • • DomainEvent, IHasDomainEvents og Aggregate.Raise() finnes, og DomainEventDispatchingInterceptor er wiret i DI
  • • SakStatusEndret, RegelresultatOpprettet, BeslutningRegistrert og StadiegjennomgangEndret reises og oppdaterer sak-projeksjonen (ADR-021)