Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Avro Regy Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Framework fit — the first and biggest decision. Despite being filed under "Laravel/PHP," this is a Symfony Messenger bundle, not a Laravel package. It answers "can we drop this into our Laravel app?" with a clear no — the service provider, bundle class, and transport decorators all assume Symfony's DI container and 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.
  • Serialization format standard. Choosing Avro + a Schema Registry over JSON Schema or Protobuf is a multi-year commitment affecting every producer and consumer. This package is a cheap way to prototype that decision: wire a topic to a registry, publish, and see whether schema-evolution friction (backward/forward compatibility, default values, union types) is tolerable for our domain before we invest in a real solution.
  • Build vs. buy on the registry client. The package is thin — it's essentially glue between 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.
  • Vendor coupling to the registry. It presupposes a Confluent-compatible /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.
  • Operational surface of the registry client. v1.2.0 added 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.
  • Event-contract governance. Supporting it implies a policy decision: who owns schemas, are they versioned in-repo or registered at deploy time, and is the registry a hard dependency of the message path (it is — a registry outage becomes a publish outage). That's an SLO/architecture decision, not just a library choice.
  • Not a roadmap item. With 3 stars, 0 dependents, and a release history of one tag in 2022 plus one small feature release in v1.2.0, this is not a strategic dependency to plan a migration around. A single community PR landing does not constitute a maintenance cadence. It's a scouting artifact.

When to Consider This Package

Adopt only when all of the following hold:

  • The service is Symfony, on a Messenger version contemporaneous with the 2022 baseline (5.4/6.0-era). Verify the bundle's composer.json constraints still resolve against our current Symfony — a multi-year gap almost certainly means a major-version conflict.
  • We are publishing to Kafka (or another broker) fronted by a Confluent-compatible Schema Registry and need Avro specifically — usually because a downstream consumer (analytics, Flink, data lake) mandates it.
  • We need custom HTTP client configuration against the registry (bearer/basic auth, short timeouts, mTLS, egress proxy) — v1.2.0 is the first release where that is expressible without forking.
  • The team is small and the alternative is a weeks-long build; a vendored, MIT-licensed starting point genuinely saves time.
  • We are willing to fork and own it. Treat the adoption as "vendoring a reference implementation," not "adding a dependency."

Look elsewhere if:

  • The stack is Laravel — the framework mismatch is disqualifying for direct use; at best, port the serialization approach.
  • We need Protobuf or JSON Schema — use symfony/serializer or the official Google/Confluent clients.
  • We need Avro without a registry — flix-tech/avro-serde-php or avro-php are maintained and framework-agnostic.
  • We need active maintenance, security patch response, or a support contract — still absent. One third-party feature PR is not a support commitment; there is no release cadence, no dependents to surface regressions, and no security process.
  • The message path is high-volume or revenue-critical — a bundle with effectively no users means we are the first to hit every bug, and schema-registry calls sit inline with publishing.
  • Supply-chain hygiene is a hard requirement. The version jump from v1.0.1 straight to v1.2.0 implies a v1.1 line that never appeared in the changelog. Before pinning any commit, confirm what shipped in the gap and that tags match published artifacts.

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.

How to Pitch It (Stakeholders)

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib