Using a Spring distributed cache to prevent watchdogs working on the same ADVISED cm handles during model sync, since we don't have an in-between state from ADVISED to READY.
Watchdog A wakes up, works on Cm-Handle-1 which has state of ADVISED and stores this in memory
Watchdog B wakes up, attempts to work on Cm-Handle-1, which still has a state of ADVISED, but is being worked on by Watchdog A, so this then moves on to Cm-Handle-2
|Caffeine , Ehcache , Guava Library for Cache etc
|Data is in memory. Not distributed among multiple instances.
|Data is in memory and distributed across multiple instances.(Scalability of cache goes hand in hand with app instances)
|Hazelcast , Redis , Memcached , Coherence
|Separate cache cluster can be managed.
Client is our application and Server is the cache cluster.
|Redis on AWS etc.
|Cluster managed by leading cloud provider
Issues and decisions
|#2 Embedded Distributed.
|We will be storing small amount of data( just the cmHandle id's ) and we don't need persistence of the data (once the application restarts the data will be gone)
|Start with a POC on #2 , also check any recommendation from ONAP.