What is the scope of the "messageId" uniqueness of the "Publish message" RPC?

Referring to Zeebe API (gRPC) | Camunda Platform 8 Docs

It says:

// the unique ID of the message; can be omitted. only useful to ensure only one message
// with the given ID will ever be published (during its lifetime)

What is the scope of this “one message with the given id”? Is it global on the entire Zeebe instance, per process, per process taking correlation key in consideration, or something else?

Hi @erikbra, welcome to the forums! The message ID is unique per Zeebe instance. The message buffer exists You can learn more about message uniqueness and message buffering in the docs!

Thanks a lot for the clarification. I did read the documentation, but I didn’t think it was clear from the documentation what the scope of the uniqueness is in this sentence. But it might only be me that misunderstands it.

a unique id to ensure the message is published and processed only once (i.e. idempotency

It looks like I left an incomplete sentence in my original reply. The message buffer exists at the engine level, so message uniqueness is determined at that level within the buffer.