@startuml NotificationSynchronizatoin header Notificaton Synchronization Diagram title Notification Synchronization left to right direction skinparam backgroundColor #EEEBDC (CentralRedist) as (centralredis) << REDIST >> usecase "**CentralRedist**" as centralredis #fa9dd0;line:Black;line.bold;text:Black package Primary { usecase "**BackEnd**" as be1 <> #fdff80;line:Black;line.dashed;text:Black usecase "**ContentDeliveryManagementServer**" as cdms1 <> #a4fa91;line:Black;line.dotted:Black database MongoDB as mongo1 #aaeefa;line:Black;line.bold;text:Black database FISdatabase as fisdb1 #d0b0ff;line:Black;text:Black card "**UCP**" as ucp1 #d0b0ff;line:Black;line.bold;text:Black frame "FingerPrint UI" as fp1 card "**ProgramWorkflow**" as pw1 <> #91adfa;line:Blue;line.bold;text:Black; } package Secondary { usecase "**BackEnd**" as be2 <> #fdff80;line:Black;line.dashed;text:Black usecase "**ContentDeliveryManagementServer**" as cdms2 <> #a4fa91;line:Black;line.dotted:Black database MongoDB as mongo2 #aaeefa;line:Black;line.bold;text:Black database FISdatabase as fisdb2 #d0b0ff;line:Black;text:Black card "**UCP**" as ucp2 #d0b0ff;line:Black;line.bold;text:Black frame "FingerPrint UI" as fp2 card "**ProgramWorkflow**" as pw2 <> #91adfa;line:Blue;line.bold;text:Black } ' Primary Side fp1 ..> pw1 :User entry ucp1 <- pw1 : publish \nNotifications cdms1 <-- pw1 be1 <-- ucp1 be1 -> fisdb1 mongo1 <- cdms1 ucp1 <==> centralredis #DarkRed;line.bold;text:green ' Secondary Side fp2 <.. pw2 :User view changes pw2 <- ucp2 : receive subscribed \nNotifications cdms2 <-- pw2 be2 <-- ucp2 fisdb2 <- be2 cdms2 -> mongo2 centralredis <==> ucp2 #DarkRed;line.bold;text:green @enduml