Use Debezium to keep the Infinispan cache data up to date compared to the database structure.
Design questions and choices to be debated:
-
no Kafka infrastructure, that means Debezium should be in embedded mode in JDG
-
decide of the Debezium topology: one instance on the coordinator (or a fixed position in the hash wheel)
-
deciding of a clean stop for Debezium and a fresh start on a new node when a topology change occurs.
-
decide how the Debezium internal states are stored (dedicated cache?, started automatically and transparently?)
-
decide what Infinispan makes from these Debezium events and how that is configured
-
all via configuration with a table to cache transfert
-
have it programmatically pluggable to add the conversion logic?
-
-
how should the end value look like: Protobuf autogenerated from the Table structure? From the DDL stream Debezium offers? What about plain Java?