Ärendestatus från externa källor i OeP

Status

decided

Impact

High

Driver

@Edwin Molina (Unlicensed)

Approver

@Per Persson 

Contributors

@Jari Koponen (Unlicensed) @Jenny Stenman (Unlicensed) @Mikael Nordlander (Unlicensed)

Informed

 

Due date

Apr 15, 2021

Outcome

Alternativ 2 - enkel lösning (vad avser felhantering och hantera rättssäkerhet) som kräver rimlig insats (möjlig att få på plats under Q2 2021) av båda parter.

Bakgrund

OeP kommer att integrera mot APIer som i sin tur skickar vidare felanmälningar och ärenden till verksamhetsspecifika system (ISYcase och ByggR t ex), och på sikt mot vårt generiska processtöd.

Det finns behov av att kunna exponera aktuell status på ett sådant ärende via OeP, och vi behöver besluta om hur detta skall implementeras.

Värt att ta i beaktande är att OeP hittills är den enda identifierade klient som inte kan hämta status vid behov från respektive API utan större ingrepp i lösningen (då beroendet till de 150-isch kommuner som använder OeP idag stökar till det) - vi tittar alltså på en lösning specifikt för OeP med låg sannolikhet för återanvändning mot andra klienter (om vi går på något annat alternativ än alternativ 1 nedan).

Alternativ

Alternativ 1 - “on-demand” 1

OeP läser status från respektive API när status efterfrågas av en intressent (“on demand”) - status för dessa ärenden dubbellagras nödvändigtvis inte i OeP.

Alternativ 2 - “on-demand” 2

Vi etablerar ett standardiserat status-API för all typ av status, som i sin tur hämtar statusar från respektive API. OeP läser status från detta standardiserade APIet när status efterfrågas av en intressent (“on demand”) - status för dessa ärenden dubbellagras nödvändigtvis inte i OeP.

Alternativ 3 - pollning 1

Vi etablerar en robot som pollar efter statusförändringar och uppdaterar OeP. Status dubbellagras i OeP.

Alternativ 4 - pollning 2

Vi etablerar något annat, som likt roboten i alternativ 3, pollar efter status och uppdaterar OeP. Status dubbellagras i OeP.

Alternativ 5 - eventdriven arkitektur

Vi etablerar en generisk lösning för publicering av statusuppdateringar där OeP får konsumera en kö. Status dubbellagras i OeP.

 

Sammanfattning

Alternativ 1: “On demand” 1

Alternativ 2: “On demand” 2

Alternativ 3: pollning 1

Alternativ 4: pollning 2

Alternativ 5: eventdriven arkitektur

Sammanfattning

Alternativ 1: “On demand” 1

Alternativ 2: “On demand” 2

Alternativ 3: pollning 1

Alternativ 4: pollning 2

Alternativ 5: eventdriven arkitektur

Pros/cons

I linje med API-strategin - framtidssäkert

Ingen ytterligare utveckling i API-teamet

Rättssäkert - vi vet alltid att korrekt status visas då den hämtas från källan

Initialt integrationsarbete i OeP mot två APIer

Om ytterligare API som håller status tillkommer krävs ytterligare en integration (låg sannolikhet dock)

Om ett källsystem ligger nere kan inte status visas (vilket dock är mest rättssäkert)

I linje med API-strategin - framtidssäkert

Relativ liten utveckling i API-teamet

Rättssäkert - vi vet alltid att korrekt status visas då den hämtas från källan

Utveckling i OeP (dock ett engångsjobb och över tid klart mindre än i alternativ 1)

Om ett källsystem ligger nere kan inte status visas (vilket dock är mest rättssäkert)

Ingen påverkan på OeP

Ingen ytterligare utveckling i API-teamet

Status kan alltid visas (dock vet man inte om det är korrekt status - inte rättssäkert)

Ej i linje med API-strategin

Ytterligare en organisation att synkronisera med (RPA-teamet)

Lösningar baserat på pollning av data leder i regel till komplexa och över tid svårförvaltade lösningar - ej framtidssäkert

Ej 100% rättssäkert - vi vet inte om det är rätt status som ligger i OeP

Ingen påverkan på OeP

Status kan alltid visas (dock vet man inte om det är korrekt status - inte rättssäkert)

Ej i linje med API-strategin

Oklart hur detta skall lösas inom API-teamet - det finns flera alternativ att utvärdera och kommer att kräva tid för analys och design

Lösningar baserat på pollning av data leder i regel till komplexa och över tid svårförvaltade lösningar - ej framtidssäkert

Ej 100% rättssäkert - vi vet inte om det är rätt status som ligger i OeP

Ingen ytterligare utveckling i API-teamet

En eventdriven arkitektur byggd i moderna ramverk skulle kunna fungera som ett komplement till lösningar byggda i linje med vår API-strategi.

Ytterst oklart om alla våra källsystem kan publicera event

Utveckling i OeP (event-lyssnare)

Oklart vem som faktiskt skall implementera och förvalta en sådan lösning (ett nytt “Eventarkitektur-team” kanske?!)

Integrationssäkerhetsfrågan måste utredas

Stor initial kostnad att få infrastrukturen på plats - väldigt tveksamt med nyttan i stort

Ej 100% rättssäkert - vi vet inte om det är rätt status som ligger i OeP

Kostnadsestimat

API-teamet: 0

OeP: Medium

API-teamet: SMALL

OeP: SMALL

API-teamet: 0

OeP: 0

RPA-teamet: SMALL/Medium/Large?

API-teamet: Large

OeP: 0

API-teamet: 0

Eventarkitektur-team: Large

OeP: Large?

Utvärdering

Mycket utveckling i OeP (som dessutom blir Sundsvalls-specifik) då de inte kan använda standardkomponenter för att hantera hämta status som andra API-källor. Stor insats för OeP.

OeP kan hämta status på samma sätt som andra API-källor då vi lägger en fasad mellan OeP, som levererar status på OeP-format, och våra tjänster.

“Enkel” felhantering - antingen går status hämta eller ej.

Rimlig insats för båda parter och bör vara möjlig att få på plats under Q2 2021.

Inte lämplig för RPA som långsiktig lösning - går därför bort.

Stor insats för API-teamet, framförallt för att skapa en säker, feltolerant och effektivt förvaltningsbar lösning - finns ingen möjlighet att få detta på plats förrän tidigast Q4 2021.

Dessutom mycket svårt att få rättssäkert - hur vet man att den status som presenteras är den status som faktiskt är korrekt?!

Källsystemen saknar nödvändig funktionalitet för att kunna skicka event idag,

Actions

@Jari Koponen (Unlicensed) - granska och kommentera
@Mikael Nordlander (Unlicensed) - granska och kommentera
@Jenny Stenman (Unlicensed) - granska och kommentera

Beslut

Alternativ 2 - enkel lösning (vad avser felhantering och hantera rättssäkerhet) som kräver rimlig insats (möjlig att få på plats under Q2 2021) av båda parter.