I have following scenario
- Account Service handles user accounts
- Reports Service for handling historical reports
When new user is registered via Account Service it triggers a Kafka event which is consumed by Reports Service which inserts one record in a table in reports own database.
Now we are introducing versioning (maximum 2 version , 1.0 and 2.0) for zero down time deployments.
- Account Service 1.0 produces event E1
- Account Service 2.0 produces event E2
On the consumer side,
- Reports Service 1.0 consumes E1
Lets say Reports Service has decided it does not want to bump the version because it has no changes for version 2 hence there is only Reports Service 1.0 running. Both report versions (if deployed) use the same database.
Given above scenario, when a new user registers via Account service 2.0's this new user cannot be consumed and ingested into Reports Service database as E2 is lost not consumed by reports service.
How do we handle this scenario?