# BabelQueue

> BabelQueue is a language-agnostic message queue standard that lets services written in different languages share the same queue without getting trapped by serialization lock-in. Instead of language-specific formats like PHP's serialize(), it defines a strict JSON envelope — frozen at schema_version 1 — that every language can read natively. It runs on Redis and RabbitMQ with no sidecar or broker plugin, adding under 2% overhead.

- Role: Founder & Developer
- Class: Flagships
- Status: Ongoing
- Started: 2026-06-15
- Technologies: JSON, Redis, RabbitMQ, PHP, Python, Go, Node.js, Java, .NET
- Skills: Protocol Design, Distributed Systems, Message Queue Architecture, Cross-Language Interoperability, Schema Design, Polyglot Programming, Software Architecture, API Design, Distributed Tracing, Open Source Maintenance, Documentation, Specification Authoring
- Website: https://babelqueue.com
- Source code: https://github.com/BabelQueue
- Source: https://www.muhammetsafak.com.tr/en/portfolio/babelqueue/
- Language: en-US
- Author: Muhammet Şafak

---
BabelQueue is an open-source message queue standard I built around the principle of "one language produces, another consumes; the same bytes." One of the most insidious problems in polyglot architectures is that a job written to a queue by one service can't be read by a consumer in another language: PHP's `serialize()`, Python's `pickle`, or language-specific type information embedded in the message trap the job inside the language that produced it. BabelQueue breaks this lock-in with a canonical JSON envelope that every language can parse using its standard library. The envelope carries the job identity (a stable, URN-based identifier instead of a class name), a `trace_id` for distributed tracing, the payload, metadata, and the retry count. The schema is frozen at `schema_version 1`; the field contract stays stable indefinitely, so a producer written today and a consumer added tomorrow can share the same wire without friction.

The standard was designed to be broker- and language-agnostic: the same envelope travels over Redis and RabbitMQ with interchangeable configuration, requires no new sidecar, proxy, or broker plugin, and adds under 2% overhead to existing infrastructure. It ships with production-ready SDKs and framework adapters for every language — Laravel and Symfony in PHP, Celery and Django in Python, Redis/RabbitMQ transports in Go, BullMQ and NestJS in Node.js, Spring Boot in Java, MassTransit in .NET — distributed through Packagist, PyPI, pkg.go.dev, npm, Maven Central, and NuGet respectively. Adoption is incremental: existing non-BabelQueue jobs keep working untouched, and migration can be done queue by queue. All components were released under the MIT license with v1.0.0.
