I need some help understanding the Server limits documentation.
First, it says gRPC has a limit of 4MB. That’s crystal clear.
Then, for Event Batch Size, it says the
DefaultTransactionSizeLimit is 4MB.
- What is the “Transaction” we are talking about here? It also says I can configure it, if I know what I am doing—but what would I do with that configuration? There is only an option to go down if that is linked to the gRPC message. Is it?
Next, for Blob size limit, it says it is “For incoming payloads (including Workflow context)” and links to the source. There are three things confusing me here:
- It says it “warns” at 512KB with the message
Blob size exceeds limit.—that would mean it already exceeded the limit. It also says it “errors” at 2MB with the message
ErrBlobSizeExceedsLimit: Blob data size exceeds limit.—again, it exceeded the limit, but now it mentions “Blob data size”, unlike the “Blob size” in the warn case.
- What is the difference between the warn and the error state? Both messages say it exceeded the limit, the limit of the “Blob size” and then the limit of the “Blob data size”.
- The source link has the code with
- That is 256KB, not 512KB, so what is that now?
- The “incoming payload” is vague.
- What is the payload we are talking about?
- How would I know the size of the payload before attempting to send it? I would not want to have an overflow in production, so I would want to have a way to check the size before sending the payload and chunk up the work to multiple batches if necessary.