Skip to content
Muhammet Şafak
tr

Two languages sharing one queue without the serialization lock-in

Graduated

An attempt to replace language-specific serialization with a frozen JSON envelope; it became BabelQueue, a polyglot queue standard.

Started
June 2026 — Ongoing

Technologies

JSON Redis RabbitMQ PHP Python Go Node.js

This experiment became a product:

BabelQueue

What I tried

The sneaky problem in polyglot architectures: one service writes to the queue in its own language’s format (serialize() is the classic on the PHP side) and a consumer in another language cannot read those bytes. The attempt was to define a single envelope every language reads natively — without a sidecar or a broker plugin in between.

What came out of it

A strict JSON envelope, frozen at schema_version 1, plus a reference implementation running on Redis and RabbitMQ. The measurement target was keeping the overhead under 2%, and the contract was written around one rule: one language produces, another consumes, same bytes.

Where it ended up

The experiment grew into a specification and a multi-language SDK set. BabelQueue is now a standard with its own domain. Details in the portfolio.

Tags: #queue#protocol#polyglot
Share:

More Experiments

All experiments

Search the site

Start typing to search posts, projects and pages.

Esc to close Powered by Pagefind