ComponentFailure modeEffectOorzaakMaatregelImplementatie Voorbeeld
DatabaseVerbinding met database verbreekt tijdens het ophalen van de databasehet wordt niet opgeslagen in de database dat de notificatie verzonden is, en zal opnieuwe verzonden worden.DDoS, verkeerd geconfigureerde container, internet problemen, crashbij de start van de applicatie checken we de database connectie params.Implementatie
DatabaseVerbinding met database verbreekt tijdens het weghalen uit de databaseEr worden geen berichten in de queue gezet.DDoS, verkeerd geconfigureerde container, internet problemen, crashretry systeem wat berichten blijft proberen tot het lukt
Databasedata corruptieberichten gaan verloren of raken corruptcrash, externe vps conditions, hack, verkeerd geconfigureerde containerbackups, data validation, transactional integrity
External Message brokerBroker onbereikbaar voor pluginhet bericht wordt nooit verzondenDDoS, verkeerd geconfigureerde container, internet problemen, crash, verkeerd geconfigureerdcrash met een error message dat de plugin beter geconfigureerd moet worden, en dat het manual moet gebeuren (bij startup). want dit is onze single point of failureImplementatie
Implementatie
External Message brokerBroker onbereikbaar voor Inbound Processorhet bericht wordt nooit uitgelezen en nooit verwerktDDoS, verkeerd geconfigureerde container, internet problemen, crashbij de start van de applicatie checken we de rabbitMQ connectie params.Implementatie
Implementatie
External Message brokerInbound Processor crasht na consume, vóór
verwerking
bericht kwijt, nooit verstuurdapplicatie crashhet op spinnen van meerdere Inbound Processor containersImplementatie, try it yourself: docker compose -f containers-docker-compose.yml up
External Message brokerDubbele delivery van berichtbericht wordt 2 keer verstuurdzo werkt een rabbitMQ queuechecken op duplicate ID in de database, en negeer het 2e berichtImplementatie
Internal Message brokerBroker onbereikbaar voor Schedulerhet bericht wordt nooit verzondenDDoS, verkeerd geconfigureerde container, internet problemen, crashde Scheduler verstuurd het bericht opnieuw als er na een tijd geen “verstuurd” confirmation is.
Internal Message brokerBroker onbereikbaar voor Notification Workerhet bericht wordt nooit gelezen en dus nooit verzondenDDoS, verkeerd geconfigureerde container, internet problemen, crashbij de start van de applicatie checken we de rabbitMQ connectie paramsImplementatie
Implementatie
Internal Message brokerNotification Worker crasht na consume, vóór
verwerking
bericht kwijt, nooit verstuurdapplicatie crashde Scheduler verstuurd het bericht opnieuw als er na een tijd geen “verstuurd” confirmation is.
Internal Message brokerDubbele delivery van berichtbericht wordt 2 keer verstuurdzo werkt een rabbitMQ queuechecken op duplicate ID in de database, en negeer het 2e bericht
OpenMRS pluginverstuurd geen berichtennotificaties zullen nooit ontvangen wordenapplicatie crash, mis configuratie, openMRS crasheen duidelijke handlijding over hoe je het moet installeren.Implementatie
Implementatie
Guide
OpenMRS pluginpartial / malformed berichtenkunnen we niks meemis configuratie, openMRS crashvalideren van het berichten formaat.Implementatie
Implementatie
Dockernetwork failurecontainers kunnen niet communiceren, berichten worden niet verwerktnetwerk driver crash, container DNS failure, host firewall, overlay network issuesautomatic container restart, netwerk connectivity monitoring bij startup
VPSdisk vollogs kunnen niet geschreven worden, database crashes, containers crashendatabase groeit ongecontroleerd, temp filesdisk space monitoring/alerting, cleanup scripts voor temp filesImplementatie
Notification
Worker
External sender is unreachableEr wordt geen bericht gestuurdDDoS, verkeerd geconfigureerde container, internet problemen, crashretry met exponential backoff. noteren in de DB dat het faaldeImplementatie
Notification WorkerExternal sender times outEr wordt geen bericht gestuurdDDoS, internet problemen, crashretry met exponential backoff. noteren in de DB dat het faaldeImplementatie
SchedulerTiming issueberichten worden op verkeerde momenten gestuurdtimezone mismatchalle tijden worden in UTC berekend.Implementatie