Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-2000

Assumptions


AssumptionNotes
1

Solution should be CPS-Core based not just in NCMP

Caffeine Cache is a CPS-Core solution
Upgrade is also possible without NCMP
2

Upgrades are backward compatible


Issues & Decisions

...


#

Issue

Notes 

Decision

1Preferred AlternativeCPS Team prefers Alternative 2

  Team and stakeholders agreed on Alternative 2

Solution Proposal

Assumption

...

2Integration or jUnit Test First
Agreed but only possible using Unit Test (stil using real cache etc.)

Solution Proposals

Alternative 0: Remove existing cache

  • tried but mush much slower and ODL memory leak experienced

Alternative 1:

...

New CPS-Core Kafka Message without confirmation

Notes

  1. LCM event should; be processed within milliseconds
  2. CPS-Core needs (new) infrastructure to produce (and Consume) Kafka Cloud Events
  3. Caffeine cache has an expiry (10mins) So NOT all models are cached all the time
  4. Worst case scenario: an update (with newly modelled data) happens before cache expiry. Update gets reject (fails validation)
    1. mitigation: Invalidate cache upon validation error and try again (consider this as an extension alternative 1a )2 )
  5. Delete-use case need to clear cache (for all instances) as well

ProCon
1
Update CPS-Core to produce and consume Kafka messages
2
More Kafka messages (new interface)
3No unnecessary validation
4Upgrade itself not delayed

Alternative 2 (chosen): Clear Cache upon validation error

  1. Worst case scenario: an update (with newly modelled data) happens before cache expiry. Update gets reject (fails validation)
    1. mitigation: Invalidate cache upon validation error and try again (once)

ProCon
1
10 minutes window where additional validation might occur
2fails-safe wil cover all scenarios
3NO new message/interface
4Simplest solution
5Upgrade itself not delayed
6
Real validation errors will always  tried twice and perform relatively slowly

Alternative 3: (existing) Kafka Message with (new) Kafka Confirmation

Not viable without knowing how many instances need to form ie need Hazelcast Cache

...

...

Alternative

...

4: New COS-Core Kafka Message with (new)

...

Hazelcast Cache (semaphore)

...

Confirmation

...

Just an extension of Alternative 1 which is not the preferred option

Alternative 5: (existing) Polling (status watchdog) with (new) confirmation

Not viable because upgrades can be completed well withing polling time

...

Alternative 6: Add version info the cache-key


ProCon
1No issue with non-distributed cache
2
NCMP specific solution?
3
Version info NOT readily availably (many impacts)