* You need strict typing
* You need well defined numeric formats
* Message volume is high enough that the parsing costs of messages outweigh the savings on implementation time
* You cannot guarantee plain text messages won't be managed in transit.
You can get around the strict typing by adopting a schema format, but then you have a tooling problem that all the languages you need to support may not support your chosen JSON schema format.
Other solutions such as protobufs exist and are far better for transmitting large amounts of binary data.
You can get around the strict typing by adopting a schema format, but then you have a tooling problem that all the languages you need to support may not support your chosen JSON schema format.
Other solutions such as protobufs exist and are far better for transmitting large amounts of binary data.