From Frustration to Language: The Birth of the DeukPack IDL
"Why not just use Thrift? What about Protobuf?" These are the first questions we hear whenever we introduce DeukPack. And they're fair questions. Thrift and Protobuf are proven, battle-tested tools...

Source: DEV Community
"Why not just use Thrift? What about Protobuf?" These are the first questions we hear whenever we introduce DeukPack. And they're fair questions. Thrift and Protobuf are proven, battle-tested tools. We used them successfully for years. The problem was what started becoming visible only after we'd used them well. This is not an article about introducing a new IDL tool. It's an engineering story about how the friction we accumulated fighting with legacy tools solidified into a design philosophy—and how that philosophy was eventually realized in code. 1. Where the Problem Started: "Nobody Knows What This message Is" As our systems grew, we started to feel the limits of what the word message could communicate. // Legacy Protobuf IDL — Is this a DB table? A network packet? Excel data? message Item { int64 item_id = 1; string name = 2; int32 quantity = 3; } In production, this single Item was being used in three different places simultaneously: Server: As an inventory query response payload