<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Binary Encoding on Tristan Germain</title><link>https://tristangermain.com/tags/binary-encoding/</link><description>Recent content in Binary Encoding on Tristan Germain</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>© Tristan Germain</copyright><lastBuildDate>Sat, 21 Dec 2024 18:04:25 +0200</lastBuildDate><atom:link href="https://tristangermain.com/tags/binary-encoding/index.xml" rel="self" type="application/rss+xml"/><item><title>Binary encoding - 4. Conclusion</title><link>https://tristangermain.com/posts/binaries-encoding/4-conclusion/</link><pubDate>Sat, 21 Dec 2024 18:04:25 +0200</pubDate><guid>https://tristangermain.com/posts/binaries-encoding/4-conclusion/</guid><description>Avro Avro is a really performant technology with a great feature set. The payload size performance is top notch and its feature set is the best for enforcing data consistency between services:
With the ability to serialize properly complex types By forcing each service to deserialize the payload with the schema version it was serialized with By helping with schema migration But it also has major cons:
The learning curve is steep because of its ecosystem and its intrinsic complexity The setup, maintenance and coordination cost between services&amp;rsquo; teams is important when using single object encoding Avro suits really well in environments where either consistency between services is a major constraint, event message size is critical, or events have such a size that the extra bytes of embedding the schema within the payload is negligible.</description></item><item><title>Binary encoding - 3. Protobuf</title><link>https://tristangermain.com/posts/binaries-encoding/3-protobuf/</link><pubDate>Thu, 07 Nov 2024 18:04:25 +0200</pubDate><guid>https://tristangermain.com/posts/binaries-encoding/3-protobuf/</guid><description>Third post of the binary encoding technologies series. It presents how Protobuf can be used to encode messages stored in an event bus.
As a reminder each technology is presented according to the following plan:
The key differentiation factors The available tooling by showing the implementation of a hypothetical blog post comment creation event: { &amp;#34;id&amp;#34;: &amp;#34;de2df598-9948-4988-b00a-a41c0e287398&amp;#34;, &amp;#34;message&amp;#34;: &amp;#34;I’m sorry, Dave. I’m afraid I can’t do that.&amp;#34;, &amp;#34;locale&amp;#34;: &amp;#34;en_US&amp;#34;, &amp;#34;author&amp;#34;: { &amp;#34;id&amp;#34;: &amp;#34;78fc52a3-9f94-43c6-8eb5-9591e80b87e1&amp;#34;, &amp;#34;nickname&amp;#34;: &amp;#34;HAL 9000&amp;#34;, }, &amp;#34;blog_id&amp;#34;: &amp;#34;b4e05776-fca3-485e-be48-b1758cedd792&amp;#34;, &amp;#34;blog_title&amp;#34;: &amp;#34;Binary encoding&amp;#34; } The ecosystem: quality of documentation and tooling, available resources etc.</description></item><item><title>Binary encoding - 2. JSON</title><link>https://tristangermain.com/posts/binaries-encoding/2-json/</link><pubDate>Tue, 01 Oct 2024 18:04:25 +0200</pubDate><guid>https://tristangermain.com/posts/binaries-encoding/2-json/</guid><description>Second post of the binary encoding technologies series. It presents how JSON, MessagePack and JSON schema can be used together to encode messages stored in an event bus.
As a reminder each technology is presented according to the following plan:
The key differentiation factors The available tooling by showing the implementation of a hypothetical blog post comment creation event: { &amp;#34;id&amp;#34;: &amp;#34;de2df598-9948-4988-b00a-a41c0e287398&amp;#34;, &amp;#34;message&amp;#34;: &amp;#34;I’m sorry, Dave. I’m afraid I can’t do that.</description></item><item><title>Binary encoding - 1. Avro</title><link>https://tristangermain.com/posts/binaries-encoding/1-avro/</link><pubDate>Sat, 07 Sep 2024 18:04:25 +0200</pubDate><guid>https://tristangermain.com/posts/binaries-encoding/1-avro/</guid><description>This is the first post in a series comparing different binary encoding technologies for messages stored in an event bus. After some research the technologies usable in a polyglot production environment are:
Avro JSON with Message Pack and JSON schema. Protobuf The first three posts present the following for each technology:
The key differentiation factors The available tooling by showing the implementation of a hypothetical blog post comment creation event: { &amp;#34;id&amp;#34;: &amp;#34;de2df598-9948-4988-b00a-a41c0e287398&amp;#34;, &amp;#34;message&amp;#34;: &amp;#34;I’m sorry, Dave.</description></item></channel></rss>