Nous commençons à utiliser Kafka dans le cadre d'un redéveloppement du backend, et nous avons une petite question sur la façon de structurer les messages que nous produisons et consommons.
Imaginons que nous ayons un microservice utilisateur qui gère les opérations CRUD sur les utilisateurs. Les deux structures qui ont été présentées comme une possibilité sont :
1) Quatre sujets kafka, un pour chaque opération. La valeur du message contiendrait juste les données nécessaires pour effectuer l'opération, c'est-à-dire
topic: user_created
message value: {
firstName: 'john'
surname: 'smith'
}
topic: user_deleted
message value: c73035d0-6dea-46d2-91b8-d557d708eeb1 // A UUID
and so on
2) Un sujet unique pour les événements liés à l'utilisateur, avec une propriété sur le message décrivant l'action à entreprendre, ainsi que les données nécessaires, à savoir
// User created
topic: user_events
message value: {
type: 'user_created',
payload: {
firstName: 'john'
surname: 'smith'
}
}
// User deleted
topic: user_events
message value: {
type: 'user_deleted',
payload: c73035d0-6dea-46d2-91b8-d557d708eeb1 // A UUID
}
Je suis en faveur du premier système décrit, bien que mon inexpérience de Kafka me rende incapable d'argumenter fortement pourquoi. Nous apprécierions grandement toute contribution d'utilisateurs plus expérimentés.