TC Subgroup RFC Kafka Partitions Meeting Notes 2023-01-31
Attendees:
Multi versioning
Multi Versioning is discussed. Florian sees this as a important feature for multi tenant installations where one tenant needs a hotfix and another cannot install the hotfix for example.
Olamide: This could be solved using mod-pubsub, but this would have performance impacts. Multi versioning did never work for modules, that consume messages from kafka directly. So this is not a problem that this RFC generates neither it solves the problem. Olamide will rephrase the RFC to make this clear.
Separate modules and separate consumers could solve the problem, but this is resource intensive.
Tenant topics vs. single topics
Julian: German libraries would like to have the flexibility to configure tenant topics (old way) or single topics. This has legal and administrative reasons. Folio-external programs could want to consume messages from one tenant, but may not see messages from others.
Olamide: Could be solved with edge modules too.
Julian: Proposal: In both ways the message header contains the tenant name. Kafka producer modules shall read a environment variable whether they do tenant topics or single topics. For the later, the environment will provide a "tenant collection name" that will be set in upper case instead of the tenant name in the kafka topic. Tenant names are lower case, so a collection is easy to distinguish from a tenant in the topic.
Olamide: This will change some text in the RFC, but the core idea remains.
Olamide will try to rephrase and the group will discuss the proposal next week.
High volume tenants influence
Jenn: Does the RFC help to solve the problem that a high volume tenant influences the processing of other tenants messages?
Olamide: No. There are some ideas about prioritization, but there is no solution there atm.
Julian: Using tenant based topics could enable a solution using round robin processing.
Olamide / Florian: Easiest way will be to add more resources to kafka and the consumer modules.
Olamide will add some text to the RFC about this topic.