123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- @startuml MessageAuditor
- header Message Auditor
- left to right direction
- package 1 {
- [Publisher]
- database database1
- }
- package 2 {
- [Consumer]
- database database2
- }
- Actor Auditor
- :Participant: => (HelpDesk) : Complain Error \n(Whatever error that may be)
- :Participant: => database2 : Perform query but \ndidn't receive what \nthey want
- database1 <|. Publisher : Stream into \ndesignated \ndatabase
- Consumer .|> database2 : Stream into \ndesignated \ndatabase
- Publisher ...|> Consumer : Stream \nSubscribed \nData
- Publisher .|> Consumer : Stream \nMissing \nData
- Publisher --> Auditor : Subscribe for \nerror notification
- Consumer --> Auditor : Subscribe for \nerror notification
- Consumer -> Publisher : Subscribe \nfor \ndata
- Auditor --> HelpDesk : Subscribe for \nerror notificaiton
- HelpDesk ..|> Auditor : Stream Error Notification
- Auditor ===> Publisher : Check Relevant Publisher
- Auditor ==> Consumer : Check Relevant Consumer
- Auditor ..|> Publisher : Stream \nmissing \ndata
- Auditor ==> database1 : Check and compare \nrelevant database if needed
- Auditor ==> database2 : Check and compare \nrelevant database if needed
- @enduml
- /' Brief Summary of my comprehension:
- Publisher will stream data into designated database.
- Consumer will subscribe to publisher in order to have the same set of data.
- Participant perform query for database2 from the consumer side but didn't
- get what they want.
- So participant send error message to help desh ,presumably an observable that
- broadcaast error notification to whomever that has subscribe to it.
- So helpdesk stream the error notification to one of it's subscriber, in this
- case, it's the message auditor, aka Auditor.
- Auditor can either go check at the database, or check the publisher and
- consumers themselves, provided if there's a logic for that to see what went
- wrong. In this case, we are dealing with loss of data transmission, so
- auditor will acquire the information of the missing data and send the
- error message to publisher to retransmit the data again to the consumer
- '/
|