Design Decision – communication protocol¶
Requirements:¶
Easy to extend and human readable
Message producer do not need to know anything about message consumers
“scale able” and therefore it works for a view as good for many participants, which means the number of participants can change constantly during runtime
Possible approaches :¶
A) Binary protocol
More size efficient then text based
Difficult to use i.e. on command line for shell scripting without dedicated utilities
Not human readable
BSON could be a possible solution
Extendable
More efficient then text based, due to no text parsing overhead
B) text based protocol
Easy to use i.e. on command line
Human readable
Somewhat laborious to use in low level languages like C
json
Readable but compact in size
Well known / supported
Structured and type support
Not as cycle efficient as binary protocols due to parsing overhead
Decision:¶
Use a JSON based protocol as:
Is easy to extend , important for future feature requests
Easy to use on command line, many tools/libraries available and proven in use
Basic type support: possible to encode integer, floating points strings, objects/maps and arrays