Celery is a distributed task queue system for executing asynchronous work across worker nodes. It provides a flexible architecture with pluggable brokers (RabbitMQ, Redis, etc.), result backends, and concurrency models (prefork, eventlet, gevent). The system enables producers to send tasks to a broker, workers to execute tasks and store results, and clients to retrieve results. Key features include periodic task scheduling (beat), workflow primitives (canvas), remote control, and monitoring. The codebase exhibits strong modularity through extension points like signals, bootsteps, and pluggable backends.
LavinMQ is a production-grade, RabbitMQ-compatible message broker implemented in Crystal. It speaks AMQP 0-9-1, AMQPS, MQTT 3.1/3.1.1, and WebSocket transports, and exposes a RabbitMQ-style HTTP management API plus a static web UI. The broker provides durable queues backed by memory-mapped segment files with fsync-batched persistence, stream queues with consumer offsets and filtering, priority/delayed/dead-lettered/deduplicated queues, publisher confirms, transactions, policies, vhosts, users/permissions, and clustering via etcd-based leader election with ISR replication. It also implements federation and shovels for cross-broker message movement, and ships lavinmqctl for administration and lavinmqperf for benchmarking. Architecturally this is a monolithic Crystal server process that binds AMQP, MQTT, HTTP metrics/management, and control sockets. Protocol connections are handled by fiber-per-connection servers sharing vhost/queue/exchange primitives. Durable state flows through definitions stores, message stores, parameter stores, and an etcd-coordinated replicator in clustered mode. The codebase separates protocol-agnostic core components (vhost, message, queue, exchange) from protocol adapters (AMQP/MQTT), HTTP controllers, and a custom vanilla-JS frontend. The primary data flow is: producers publish via AMQP/MQTT, exchanges route to bound queues, consumers receive; persistence writes mmap segments and confirms only after fsync or in-sync replica acknowledgment. The project is actively maintained with recent commits, extensive CI including compatibility runs against Bunny, rabbit-hole, and RabbitMQ Java client, plus packaging for Docker/DEB/RPM. The code has several genuinely reusable low-level components such as CIDR/IP matchers, memory-mapped file abstractions, consistent hashing implementations, and topic matching trees. Some maintenance burden comes from custom Crystal stdlib patches and low-level Linux I/O optimizations, but the codebase tracks recent Crystal releases. Known limitations such as MQTT QoS 2 downgrade, PROXY v2 IPv6 gaps, and deprecated config aliases are documented rather than hidden.
This repository is a pure PHP implementation of the AMQP 0-9-1 protocol for interacting with RabbitMQ message brokers. It provides a robust client library handling connection management, channel multiplexing, message publishing/consuming, and wire-level protocol frame encoding/decoding. The architecture features layered abstractions: connection layer (TCP/socket handling), channel layer (logical channels over connections), message layer (AMQP message structure), and wire layer (binary serialization/deserialization). Key entry points include AMQPStreamConnection (primary connection interface) and AMQPChannel (queue/exchange operations). Data flows involve: publishing (user → channel.basic_publish() → AMQPWriter → socket → broker) and consuming (broker → socket → AMQPReader → channel.basic_consume() → user callback). The library supports advanced features like publisher confirms, consumer cancellation notifications, heartbeat monitoring, and batch publishing. The codebase demonstrates strong engineering practices: clear separation of concerns, extensive unit/functional test suite, protocol version handling via generated code from JSON specifications, and active maintenance with recent commits. While supporting broad PHP versions (5.6-8.5), it has dropped older versions showing proactive maintenance. Dependencies are minimal (sockets extension required, pcntl optional for signals). The library is production-ready for building distributed systems requiring reliable asynchronous messaging.
Eclipse Hono is a cloud-native IoT messaging platform that ingests telemetry and events from devices via multiple protocols (MQTT, CoAP, HTTP, AMQP, LoRa, Sigfox) and routes them to northbound applications over AMQP, Kafka, or Google Pub/Sub. The codebase is modular, comprising protocol adapters, device registry services (JDBC and MongoDB), authentication, command routing, and client libraries. It is built on Vert.x and Quarkus, uses Micrometer for metrics and OpenTracing/OpenTelemetry for distributed tracing. The system handles device registration, credentials management, tenant configuration, connection limits, and resource governance. It includes a CLI tool for consuming telemetry and a comprehensive integration test suite. The repository is actively maintained with frequent commits and CI pipelines.
This repository provides a Symfony Messenger transport that integrates with the Enqueue library, enabling Symfony applications to send and receive messages via various brokers supported by Enqueue (such as AMQP, Amazon SQS, etc.). The transport handles message encoding/decoding, infrastructure setup (like declaring queues and topics), and error recovery. Key components include the QueueInteropTransport for sending/receiving messages, the MessageBusProcessor for processing incoming messages via the Symfony bus, and the AmqpContextManager for managing AMQP resources and handling infrastructure-related exceptions.