Remember the good old days when you only had one app and life was easy? There was only one database (one source of truth), and you had never even heard of Kafka? You heard rumors of micro-services and eventual consistency, and it scared you, but you never thought it would reach your humble little engineering team.

Those days are over, so now you have a thousand new problems to solve and need to know about things like Avro. Because you have 50 micro-services now, you need a fast/compact data serialization format that allows every service to communicate effectively (i.e. speak the same language and maybe even learn some new words along the way), and Avro is one of many solutions to this problem (another is protocol buffers).

Data serialization is one of the most boring things I can think of, so it would be great if it didn't require any more than 5 minutes to get this part out of the way. That's why I had high hopes when I found this post from Salsify which details their very-much-appreciated efforts to Ruby DSL-ify Avro schemas. To get started, grab the gemsies: