broker
broker copied to clipboard
Introduce versioning for the Zeek-layer serialization format
As discussed in https://github.com/zeek/zeek/discussions/2879 and #331, there is no versioning for the Zeek-layer serialization. While the broker protocol has versioning, this does not extend to the format of entities such as Zeek records or events that are transferred via broker. @ckreibich summarized this:
It seems quite clear to me that we're lacking a versioning concept at the Zeek layer, above Broker. We're still maintaining this as if only the Zeek cluster exists, implying that all nodes run the same version. When establishing a connection in Broker, I'd like to be able to include a key/val table that conveys such things as client name, protocol version, perhaps dialect info, and I'd like to receive one in return. Think HTTP request/response headers. A basic handshake that informs endpoints prior to the exchange of any other message types about how/whether to continue.
I've opened the issue here in the broker repo for now. This might need to move to Zeek itself (e.g., depending on #339).