koco/avro-regy
koco/avro-regy is a Laravel package for Avro schema management and schema registry integration. It provides configurable tooling to define, register, and resolve Avro schemas, helping PHP applications validate and serialize data with a registry-backed workflow.
symfony/messenger. The real decision it informs is whether to pull Symfony Messenger into a Laravel codebase purely to get Avro serialization (almost always no) versus extracting the serialization logic into our own Illuminate\Queue job middleware.symfony/messenger and a Confluent-compatible Schema Registry REST API. Reading it is a 1–2 day exercise that answers "do we write 300 lines ourselves, or adopt?" Given the signals below, the honest output of that evaluation is usually build, using this as the reference implementation./schemas endpoint. That constrains roadmap decisions about managed Kafka (Confluent Cloud vs. MSK vs. Redpanda vs. self-hosted Apicurio) — adopting it nudges us toward Confluent's API contract.requestOptions pass-through on the schema-registry client — auth headers, timeouts, TLS/proxy config. That's a tacit admission that the registry call is a real HTTP dependency needing real client configuration; our own implementation must treat timeouts and retry policy on that call as a first-class design concern, not an afterthought.Adopt only when all of the following hold:
composer.json constraints still resolve against our current Symfony — a multi-year gap almost certainly means a major-version conflict.Look elsewhere if:
symfony/serializer or the official Google/Confluent clients.flix-tech/avro-serde-php or avro-php are maintained and framework-agnostic.Also weigh the opportunity signal honestly: a high opportunity score against a low quality score is a gap, not a green light. It says "this problem is real and underserved," which argues for building rather than adopting. v1.2.0 narrows the feature gap slightly but does nothing to close the maintenance and bus-factor gap.
To executives: We re-evaluated a free, MIT-licensed bundle for wiring Avro schema validation into our event pipeline after its v1.2.0 release. The release adds configuration options for the Schema Registry HTTP client — useful, but narrow. The substance is unchanged: it is a Symfony component in a Laravel codebase, with a near-empty user base, one maintainer, and a feature release cadence measured in years. Recommendation: do not adopt as a dependency. Spend 2–3 days reading it as a reference design and implement the ~300 lines of registry glue we actually need, inside our own codebase, with tests — including client timeouts and auth config that v1.2.0 just acknowledged are necessary. Cost is negligible; the risk we avoid is inheriting an unmaintained, single-maintainer component on the critical path of message publishing.
To engineering: It's a thin adapter between Symfony Messenger and the Confluent Schema Registry REST API — subject-name resolution, Avro encode/decode, and schema-ID caching. The design is worth copying; the code is not worth depending on. v1.2.0 adds requestOptions pass-through on the registry client (PR #3), which mostly matters if you need auth headers, tight timeouts, or proxy/TLS settings on that call — take the idea, implement it deliberately. Two concrete gotchas to carry into our own implementation: the registry becomes a synchronous dependency of every publish (so cache schema IDs aggressively, set explicit timeouts, and fail open or queue on registry errors), and compatibility mode must be set server-side (BACKWARD vs FULL) before the first schema ships — retrofitting it after producers are live is painful. Also verify the v1.1.0 gap in the changelog before treating any tag as a trustworthy baseline. Fork the patterns, own the code, and pin our own Symfony/Laravel-native integration.
How can I help you explore Laravel packages today?