I read this topic, where looks like the issue was solved.
But it was reproduced for me.
I am using lagom 1.5.3.
One instance of Cassandra.
I have more than 10 microservices. In one microservice I have multiple Read Side Projections, several topic producers, subscribed on several kafka topics.
The issue I faced that Lagom tries to create several offsetStore for one microservice in Cassandra.
It crashing with Migration error.
Some my logs:
Create new table: org.apache.cassandra.config.CFMetaData@438bbd2e[cfId=f0f7a8f0-ef52-11e9-8776-41417f4e6c33,ksName=mc1,cfName=offsetstore
Create new table: org.apache.cassandra.config.CFMetaData@670691bf[cfId=f0f84530-ef52-11e9-8776-41417f4e6c33,ksName=scmmc1cfName=offsetstore
And then I see this error: Column family ID mismatch (found f0f84530-ef52-11e9-8776-41417f4e6c33; expected f0f7a8f0-ef52-11e9-8776-41417f4e6c33)
Locally it works for me, only reproduced in production.
I will be glad to get any advice or help.
As I got from Lagom implementation, we create offset table for each topic producer. Also, as I got from code we have ReadSideActor that creates this table, but from, implementation I see that I create several ReadSideActors in ReadSideImpl please see code:
val readSideProps =
ReadSideActor.props(
config,
eventClass,
globalPrepareTask,
registry.eventStream[Event],
processorFactory
)
I tried to fix it by disable auto creation of tables like this:
But I faced with issue that I cannot describe common tables only in one readside, I need to define them in every Read Side Processor. So, It looks like I will again faced with issue that it create offsetStore table in different threads simultaneously.