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

Stream Laravel Package

get-stream/stream

Official PHP SDK for Stream’s activity feed and chat APIs. Build scalable timelines, follow relationships, notifications, and real-time messaging in Laravel or any PHP app with a clean, well-documented client, feed groups, enrichment, and moderation support.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: get-stream/stream is a framework-agnostic PHP client for Stream Feeds v2. It can fit a Laravel codebase through Composer and a thin service-provider/adapter layer, but it is not Laravel-native and should not become a domain-level dependency. Best fit is an existing Stream Feeds v2 integration or a short-lived migration bridge — not a greenfield feed architecture.
  • Integration feasibility: Feasible for a small team: install via Composer, configure API credentials/tokens, bind a client singleton, and isolate calls behind an application-owned repository/interface. The main effort is not SDK installation; it is auth/token handling, feed modeling, queueing, webhook handling, and migration planning.
  • Technical risk: High strategic risk because the package is explicitly in maintenance mode and superseded by Feeds v3 (getstream-php). The low dependent count and modest star count suggest limited ecosystem validation. BSD-3-Clause is permissive and lowers legal friction, but the maintenance-mode status means feature gaps, uncertain security patching, and eventual API deprecation are the real risks. A recent release date does not offset the stated maintenance posture.
  • Key questions: What is the supported v2 end-of-life window and v3 cutover date? Does Feeds v3 have feature parity for every v2 capability used today? Which PHP, Laravel, and Guzzle versions are supported? Who owns security fixes for this package? How are user tokens and API secrets issued/rotated? Are there feed ID, activity, reaction, notification, or webhook schema changes between v2 and v3? What is the vendor support/SLA path? What are the rate limits and migration implications for existing feed data?

Integration Approach

  • Stack fit: Use Composer with a pinned version, place credentials in Laravel config/environment, bind the SDK client as a singleton, and wrap it in an application-owned FeedService/repository interface. Keep SDK calls out of controllers and models. Use Laravel queues for non-critical feed writes and Laravel events/listeners for application-side side effects. Confirm dependency constraints against the target Laravel and PHP versions before committing.
  • Migration path: Treat this package as transitional. Inventory all current Stream v2 usage, freeze new v2 adoption, isolate existing calls behind an abstraction, build a parallel Feeds v3 adapter using getstream-php, and run contract tests against both implementations. Migrate environment-by-environment, starting with non-critical feeds, then move reads/writes and webhooks, and finally remove the v2 dependency.
  • Compatibility: Verify PHP and Guzzle constraints, Laravel container/queue serialization behavior, token generation, feed group/ID conventions, payload schemas, reaction/notification semantics, and webhook formats. Because the package is not Laravel-specific, lifecycle integration such as config caching, retries, and health checks must be built and owned internally. BSD-3-Clause permits an internal fork if a critical patch is needed, but that should be treated as accepting long-term maintenance burden.
  • Sequencing: 1) discovery and v2 usage inventory; 2) compatibility spike against the target Laravel/PHP stack; 3) build the adapter and configuration boundary; 4) pilot one low-risk feed; 5) migrate queued jobs and webhooks with idempotency; 6) run parallel/contract validation; 7) cut over to v3 behind a configuration flag; 8) decommission v2 and remove the package. Include rollback criteria and a clear owner before starting.

Operational Impact

  • Maintenance: The package is in maintenance mode, so plan for no new features and uncertain long-term security coverage. Pin the exact version, monitor advisories, track the v3 migration as a funded workstream, and avoid spreading direct SDK usage across the codebase. Internal ownership is required even if the package is only a temporary bridge.
  • Support: Community/vendor support for a superseded v2 client is likely limited. With few dependents, there is little ecosystem pressure to fix issues quickly. Establish an internal runbook, escalation path, and decision owner for patching or forking under BSD-3-Clause.
  • Scaling: The client itself is thin; scaling is dominated by Stream API quotas, application queue throughput, token issuance, and webhook processing. Use rate-limit-aware retries with backoff, idempotency keys where supported, batching for bulk feed operations, and separate queues for high-volume feed writes.
  • Failure modes: Expect network timeouts, 401/403 token failures, 429 rate limits, 5xx vendor errors, malformed or changed payloads, duplicate/out-of-order webhooks, and queue retries causing duplicate activities. During migration, feed ID mismatches and mixed v2/v3 reads are additional risks. Add structured logging, dead-letter queues, alerting on error/rate-limit spikes, and replay-safe webhook handlers.
  • Ramp-up: SDK ramp-up is low for a PHP/Laravel developer; ramp-up for feed modeling, token security, webhook idempotency, and v2-to-v3 migration is moderate. Budget enablement time for the team, run a migration rehearsal, and document the adapter boundary so future v3 work does not require another cross-cutting refactor.
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.
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core
nodisrupt/laravel-agent