audit.plantuml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. @startuml MessageAuditor
  2. header Message Auditor
  3. left to right direction
  4. package 1 {
  5. [Publisher]
  6. database database1
  7. }
  8. package 2 {
  9. [Consumer]
  10. database database2
  11. }
  12. Actor Auditor
  13. :Participant: => (HelpDesk) : Complain Error \n(Whatever error that may be)
  14. :Participant: => database2 : Perform query but \ndidn't receive what \nthey want
  15. database1 <|. Publisher : Stream into \ndesignated \ndatabase
  16. Consumer .|> database2 : Stream into \ndesignated \ndatabase
  17. Publisher ...|> Consumer : Stream \nSubscribed \nData
  18. Publisher .|> Consumer : Stream \nMissing \nData
  19. Publisher --> Auditor : Subscribe for \nerror notification
  20. Consumer --> Auditor : Subscribe for \nerror notification
  21. Consumer -> Publisher : Subscribe \nfor \ndata
  22. Auditor --> HelpDesk : Subscribe for \nerror notificaiton
  23. HelpDesk ..|> Auditor : Stream Error Notification
  24. Auditor ===> Publisher : Check Relevant Publisher
  25. Auditor ==> Consumer : Check Relevant Consumer
  26. Auditor ..|> Publisher : Stream \nmissing \ndata
  27. Auditor ==> database1 : Check and compare \nrelevant database if needed
  28. Auditor ==> database2 : Check and compare \nrelevant database if needed
  29. @enduml
  30. /' Brief Summary of my comprehension:
  31. Publisher will stream data into designated database.
  32. Consumer will subscribe to publisher in order to have the same set of data.
  33. Participant perform query for database2 from the consumer side but didn't
  34. get what they want.
  35. So participant send error message to help desh ,presumably an observable that
  36. broadcaast error notification to whomever that has subscribe to it.
  37. So helpdesk stream the error notification to one of it's subscriber, in this
  38. case, it's the message auditor, aka Auditor.
  39. Auditor can either go check at the database, or check the publisher and
  40. consumers themselves, provided if there's a logic for that to see what went
  41. wrong. In this case, we are dealing with loss of data transmission, so
  42. auditor will acquire the information of the missing data and send the
  43. error message to publisher to retransmit the data again to the consumer
  44. '/