Warning |
---|
In Review |
Jira item:
Jira | ||||||
---|---|---|---|---|---|---|
|
...
The purpose of this spike is to propose a strategy to ensure that CPS Data Updated event schema will be able to evolve with future requirements to come.
Compatibility Types
CPS supports one of the 3 following Several compatibility types between 2 consecutive event schema versionsexist when an event schema definition is evolving from one release to the next one:
Forward Compatibility
Forward compatibility type allows events produced by the new schema to be consumed by the previous schema.
...
The type to be used by the consumer is already provided in the existing 'spring.json.value.default.type' property.
Default Topic Name
A good practice of Event Driven Architecture is to avoid having multiple kind of events in the same topic. It means that the topic defined for Cps Data Updated Events should be dedicated to those events and is not supposed to receive any other kind of events. To reflect this intention, it is proposed to rename the default topic name with the name of the events that are published in the topic. Then, its name is changed from "cps.cps-cfg-state-events" to "cps.data-updated-events". This default name can still be changed by configuration using "CPS_CHANGE_EVENT_TOPIC" environment variable, if needed.
Gerrit Changes (WIP)
Conclusion
The minimal changes proposed above still give the option to make a forward compatible change in next coming release after Istanbul without introducing all the complexity coming with a complete solution right now, with the current design.
...