socialdept/atp-signals
A Laravel package for working with AT Protocol signals, providing typed signal objects and integrations that make it easy to handle ATProto events and webhooks within your PHP applications.
Architecture fit
This is a Laravel/PHP package from SocialDept that consumes AT Protocol "signals" (firehose/event-stream data). The v1.1.0 release contains only a namespace rename — SocialDept\Signals → SocialDept\AtpSignals — with no functional, architectural, or API-surface changes. The package's role in our stack is unchanged; what changes is every fully-qualified class reference, facade alias, config key path, and published-asset tag tied to the old vendor namespace.
Integration feasibility
Feasibility remains high in isolation, but the rename makes v1.1.0 a hard major bump rather than a drop-in upgrade. Any code we've written against SocialDept\Signals\* must be rewritten, and there is no evidence of a compatibility shim or class-alias layer being provided. Integration cost is therefore proportional to how much surface area we've touched, not to how much the package changed.
Technical risk The risk is asymmetric: low technical novelty, high blast radius. Real failure modes are (a) silent breakage in string-based references — config files, service provider registrations, queued job class names already serialized in the queue or failed_jobs table, and event/listener mappings defined as strings — which static analysis will not catch; and (b) deserialization failures for jobs dispatched before the upgrade that reference the old class name. The warning marker ("⚠️ Major breaking changes") signals the maintainer treats this as major, so we should too, even though the diff is cosmetic by intent.
Key questions
class_alias compatibility layer or a ^1.0|^1.1 dual-support window planned for the 1.0 line?name field), which would alter the require line and any lockfile pinning?Stack fit No change to PHP/Laravel version constraints or dependency expectations is indicated by the notes. Fit with our Laravel application is unchanged; the namespace move is aligned with the vendor's broader AT Protocol package family, which is a mild long-term consistency win if we adopt more than one of their packages.
Migration path
Treat as a coordinated refactor, not a version bump. Sequence: inventory all references (including non-PHP references — config, .env, database rows, cache keys) → update composer.json constraint → bulk-rewrite SocialDept\Signals → SocialDept\AtpSignals across source and config → re-publish any vendor config/assets → run full test suite plus a queue-drain check. Before deploying, flush or manually reconcile queued jobs and failed_jobs entries that serialize the old class name, or deploy a temporary class_alias shim to bridge in-flight payloads.
Compatibility No backward compatibility is offered, so this is a clean break. If we maintain multiple services or a shared internal package depending on this library, all consumers must upgrade in lockstep or be pinned to the 1.0 line. Note that Composer will not surface the breakage at install time if our constraint is permissive — pin explicitly.
Sequencing Do not bundle with unrelated dependency updates. Land the upgrade on a short-lived branch, verify green CI, then coordinate deploy across all consumers before removing any shim. If we are mid-sprint on AT Protocol ingestion work, defer to a dedicated change window; the rename provides zero functional benefit to us and is purely a consistency play by the vendor.
Maintenance
Ongoing maintenance burden is largely unchanged, with one caveat: a vendor willing to ship a namespace rename as a minor-version-numbered release (1.0 → 1.1) despite labeling it "major breaking" is signaling that semver discipline may be loose. That raises our expected cost of future upgrades and argues for tighter version pinning (1.1.*) rather than caret ranges.
Support Support surface is unchanged. The main support risk is documentation lag — third-party tutorials, blog posts, and our own internal runbooks will reference the old namespace for some time. We should note the rename in our internal dependency changelog so future debugging isn't misdirected.
Scaling No scaling implications. Event throughput, memory, and connection behavior are untouched by a namespace change.
Failure modes
Post-upgrade failures will present as Class not found errors, which are loud and diagnosable, plus the quieter class of failures from string-referenced classes and stale serialized queue payloads. The latter can surface hours later as failed jobs rather than at deploy time. Recommend a post-deploy check of the failed_jobs table and a canary drain of the queue.
Ramp-up Negligible new learning for the team — the API is identical. The ramp-up cost is entirely mechanical search-and-replace plus verification, estimable in hours rather than days for a single application, scaling with the number of consumers and the volume of in-flight serialized work.
How can I help you explore Laravel packages today?