| 
					
				 | 
			
			
				@@ -0,0 +1,51 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ '/ 
			 |