2020-06-03 08:48:30 UTC - Gilles Barbier: @Thomas Jamet to obtain this result and keeping the benefits of using schema, I use an envelope: a message that contains a type and one of possible message, eg. ```{ "type": "record", "name": "AvroForEngineMessage", "namespace": "com.zenaton.jobManager.messages", "fields": [ { "name": "type", "type": { "type": "enum", "name": "AvroForEngineMessageType", "symbols": [ "CancelJob", "DispatchJob", "RetryJob", "RetryJobAttempt", "JobAttemptCompleted", "JobAttemptFailed", "JobAttemptStarted" ] } }, { "name": "jobId", "type": "string", "logicalType": "uuid" }, { "name": "CancelJob", "type": ["null", "com.zenaton.jobManager.messages.AvroCancelJob"], "default": null }, { "name": "DispatchJob", "type": ["null", "com.zenaton.jobManager.messages.AvroDispatchJob"], "default": null }, { "name": "RetryJob", "type": ["null", "com.zenaton.jobManager.messages.AvroRetryJob"], "default": null }, { "name": "RetryJobAttempt", "type": ["null", "com.zenaton.jobManager.messages.AvroRetryJobAttempt"], "default": null }, { "name": "JobAttemptCompleted", "type": ["null", "com.zenaton.jobManager.messages.AvroJobAttemptCompleted"], "default": null }, { "name": "JobAttemptFailed", "type": ["null", "com.zenaton.jobManager.messages.AvroJobAttemptFailed"], "default": null }, { "name": "JobAttemptStarted", "type": ["null", "com.zenaton.jobManager.messages.AvroJobAttemptStarted"], "default": null } ] }```
----