| 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
 
-  '/
 
 
  |