Det gode forretningsdomæne (tidligere: silo)

Det store overblik

Alle forretningsdomæner (siloer) er beskrevet i denne oversigt over målsystemlandskabethttps://starwiki.atlassian.net/wiki/spaces/KON/pages/356286533

Før oprettelse af et forretningsdomæne

Inden oprettelsen af et forretningsdomæne skal de grundlæggende principper for domænet være på plads: Navn for forretningsdomænet, forretningsdomænets ansvarsområde og forretningsdomænets afhængighed af andre forretningsdomæner - events der skal abonneres på og events der skal udstilles. Se evt. https://starwiki.atlassian.net/wiki/spaces/CITY/pages/2257158358

Oprettelse af et forretningsdomæne

Selve oprettesen sker ved at følge checklisten for oprettelse af nye forretningsdomænerhttps://starwiki.atlassian.net/wiki/spaces/CITY/pages/2398421661

Brug og videreudvikling af et forretningsdomæne

Når først forretningsdomænet er oprettet, skal de enkelte services og metoder implementeres og databasen skal opsættes. De nye forretningsdomæner er født med en demo service som skal fjernes ifm oprettelsen af den første service.

Der er en række principper der skal overholdes for forretningsdomænerne således vi får et ensartet og vedligeholdelseslet landskab af forretningsdomæner:

Udviklingsprincipper og designmønstre for de nye forretningsdomæner

https://starwiki.atlassian.net/wiki/spaces/CITY/pages/1406926851/STAR.Foundation+-+Teknisk+dokumentation#Udvikler-how-tos

Principper og navngivning i forhold REST services

https://starwiki.atlassian.net/wiki/spaces/CITY/pages/1406926851/STAR.Foundation+-+Teknisk+dokumentation#REST-principper

Principper for event drevet arkitektur, herunder event og brugen af Event Brokeren i forhold til servicekald

Vi laver ikke service kald mellem de enkelte domæner, ud over til og fra DFDG klassik (som teknisk set ikke er et domæne). Mellem de enkelte domæner basere vi kommunikationen på events som beskrevet her: https://starwiki.atlassian.net/wiki/spaces/CITY/pages/2522874147/Star.Foundation+-+EventBroker

Principper for kodelister og brugen af samt udstilling af kodelister fra andre forretningsdomæner

https://starwiki.atlassian.net/wiki/spaces/CITY/pages/1406926851/STAR.Foundation+-+Teknisk+dokumentation#Kodelister-(master%2Fslave)

Principper for fejlhåndtering, herunder fejlkoder.

Fejlhåndteringen for metoder er beskrevet i detaljer her https://starwiki.atlassian.net/wiki/spaces/FYS/pages/13926417/Fejlh+ndtering

Principper for databaseadgang, herunder også hvordan vi laver revisionshistorik

Vi har beskrevet den gode database her hvor designprincipperne for hvordan vi ønsker at arbejde med databaser er beskrevet: https://starwiki.atlassian.net/wiki/spaces/FYS/pages/13926405/Den+gode+database

Historik for tabeller bliver håndteret af databaseserveren selv vi temporale tabeller: https://starwiki.atlassian.net/wiki/spaces/CITY/pages/1654587579/Star.Foundation+-+Historik

Revisionshistorikken er implementeret dels via historik på fact tabellerne så man kan se hvordan data har udviklet sig over tid, dels via metadata feltet i tabellerne hvor man kan se hvem der er ansvarlig for handlingen/ændringen. Metadata og brugen deraf er beskrevet på denne side: https://starwiki.atlassian.net/wiki/spaces/CITY/pages/1654718588/Star.Foundation+-+Metadata

Initial load af data i nye forretningsdomæner

Dataload i det nye forretningsdomæne laves af BI. De har ansvar for datamigration og det initielle load på testmiljøer og i produktion ifm release. Til brug for dette laves i en user story en mapning af eksisterende tabeller/felter til nye tabeller/felter i samarbejde med BI.

Principper for GDPR

I de enkelte forretningsdomæner er GDPR sletninger implementeret som almindelige batchjobs der kører direkte under Stonebranch, og ikke som subjobs til conducter jobs som i DFDG klassik. Det er jobbes eget ansvar at terminere efter en vis kørselstid så frem det ikke blot skal slette alt der kan slettes. I forbindelse med sletning af data, bliver vi nødt til at frakoble den automatiske historik, beskrevet herhttps://starwiki.atlassian.net/wiki/spaces/FYS/pages/3864100877/Den+gode+GDPR-sletning+Temporal+Tables

Det er de enkelte domæners ansvar at slette både data ejet af domænet og data replikeret fra andre forretningsdomæner.

Principper for duplering af data i forhold til self-contained applikation

De enkelte forretningsdomæner skal kunne fungere uden at andre forretningsdomæner er tilgængelige. I dag har vi dog en forretningsrest i DFDG (DFDG klassik) som er nødvendig at nå via servicekald da ikke alt er eventunderstøttet endnu. Dette betyder at vi kan have kaskadeafhængighede hvor et forretningsdomæne kalder DFDG Klassik, der igen kalder et andet forretningsdomæne.

Målet er at al forretning er delt ud i forretningsdomæner, der alle kommunikere med hinanden via asynkrone events. Hvert forretningsdomæne holder de data det har brug for lokalt, og holder data ejet af andre forretningsdomæner up-to-date ved at abonnere på events. Dette betyder at centrale oplysninger som fx. en borgers kontaktgruppe er gemt i stort set alle forretningsdomæner.