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

Waterline Laravel Package

durable-workflow/waterline

Waterline brings durable workflow execution to Laravel. Define multi-step workflows as PHP classes, run them reliably with retries and delays, and inspect progress from a database-backed store. Ideal for long-running background processes that must survive failures.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Positioning. Waterline remains a companion operator console for the Durable Workflow runtime, not a workflow engine. Release 2.11.2 is a patch: two accessibility fixes (translated accessible names on schedule-status and saved-view selectors; label/control association for backfill date and overlap policy), rebuilt frontend assets, and explicitly unchanged form values, filtering, and backfill handlers. Nothing here changes the adoption calculus, but it does confirm several previously open integration facts and slightly widens the visible UI surface. Treat it as an early-stage tactical add-on with a fork-and-own fallback (MIT), not a platform bet.

Architecture fit. Standard Laravel package shape, now confirmed in part: auto-discovery plus a custom publish command (php artisan waterline:publish) rather than a bare vendor:publish --tag=..., and prebuilt frontend assets shipped in the release artifact. The UI surface is broader than health/history/queues/retries/repair — it includes schedule status, saved views, and a backfill form. Backfill is a write path with real blast radius (it can replay a date range across workflows), so the privileged-mutation concern now covers three distinct areas: repair, schedule control, and backfill. The coupling contract to runtime internals (public API vs. table schema) is still the single biggest unknown and is untouched by this release.

Integration feasibility. Still low-to-moderate: composer require, discovery, config publish, asset publish, route gating. The new detail is that asset publication is an explicit step on every upgrade, not just first install — so it belongs in the deploy checklist, not the onboarding doc. Feasible within a sprint if the runtime is already in production and a staff auth boundary exists.

Technical risk.

  • Unproven dependency graph (0 dependents) means no community validation of upgrade paths; 2.11.2 is a good signal of active maintenance but not of third-party hardening.
  • Tight version coupling to runtime internals remains the top risk; a runtime minor bump could break the console.
  • Destructive write paths (repair, backfill, schedule changes) with unknown idempotency, dry-run, and audit behavior.
  • Asset/version skew: because assets are prebuilt and shipped, a partial deploy (package updated, waterline:publish not run) or stale browser cache can leave the UI calling handlers that no longer match — silent, confusing failures during incidents.
  • Dual distribution channel: the release notes reference matching versioned service images. Container users must track image tag and Composer package version as one unit; drift is a new, concrete failure mode.
  • Low star count keeps abandonment risk; MIT plus a contained UI surface mitigates it.

Key questions.

  • Which runtime and version range is required, and is integration via public API or internal schema? (Still unanswered.)
  • Supported Laravel/PHP matrix and DB/queue backends (MySQL, Postgres, Redis, SQS)?
  • UI stack (Blade, Livewire, Inertia/Vue) and is waterline:publish idempotent/re-runnable in CI?
  • Is the i18n layer (implied by "translated accessible names") configurable, and does localization extend to date/time rendering in history views?
  • Does it ship authorization gates/policies, or must we wrap every route — now including backfill and schedule routes?
  • Repair/backfill semantics: idempotent? dry-run? audited? reversible? capped selection size?
  • Multi-tenant isolation and payload redaction — do workflow inputs/outputs (potential PII) render in the UI, including saved views?
  • Read model: live runtime tables, separate history store, or cached projections? Retention?
  • Is there a changelog/security policy we can rely on for upgrade triage, and does the org AGENTS guide imply a conformance process?

Integration Approach

Stack fit. Natural for a Laravel app already operating the Durable Workflow runtime. Confirm Laravel major (10/11/12), PHP version, and whether the package assumes Horizon/Redis, a specific DB driver, or a specific runtime persistence schema. The publish step is package-specific (php artisan waterline:publish), so verify in CI whether it overwrites locally modified assets and whether it must run on every deploy or only on version change.

Migration path. No data migration expected for a console layer; re-verify no package-owned tables exist. Install 2.11.2 pinned in staging against a non-production runtime and reconcile displayed health/queue/history against direct SQL and runtime logs. Treat 2.11.2 as the baseline to validate — do not assume earlier patch-level behavior.

Compatibility. Pin runtime and Waterline to exact versions (now 2.11.* style semver rather than the earlier date-based assumption), and pin the corresponding service image tag if containerized. Validate DB-driver parity, route prefix/middleware collisions with existing admin tooling, and whether the UI lives on the main domain or a separate internal hostname.

Sequencing.

  1. Confirm runtime version pin and integration contract (API vs. schema).
  2. Install pinned 2.11.2 in staging, read-only, behind staff auth + IP allowlist.
  3. Run waterline:publish and bake it into the deploy pipeline with cache-busting; verify assets match the package version.
  4. Validate health/queue/history/schedule views against source-of-truth queries.
  5. Enable repair and backfill in staging with request logging and, if absent upstream, a wrapper audit table.
  6. Production read-only for two weeks to build operator familiarity.
  7. Enable write actions gated by an approval step (ticket reference or second-operator confirmation), with backfill ranges capped.
  8. Wire health signals into existing alerting rather than relying on dashboard glance-time.

Operational Impact

Maintenance. Small maintainer base and near-zero dependents keep bus factor dominant. Pin versions, run a quarterly upgrade review, and track runtime upgrades as the trigger for Waterline upgrades. Add two standing checklist items from this release: (a) publish assets after every package bump, (b) keep the service image tag in lockstep with the Composer version. Fork-ready posture (MIT, contained UI) still holds.

Support. Community/GitHub-only, no commercial SLA. The a11y fixes show responsive maintenance on polish issues — a positive signal — but responsiveness on accessibility tickets says nothing about incident-time support. Not appropriate for 24/7-critical operations without an internal owner and a documented fallback to direct SQL/CLI.

Scaling. Console queries hit runtime persistence; history and queue views remain the hot paths. Plan pagination, time-window filters, read replicas or indexed projections as volume grows. Saved views are convenient but may encode expensive filters — review them as query patterns. Backfill and bulk retries can produce burst worker load: rate-limit and cap selection size.

Failure modes to design against.

  • Stale or partial health data misleading on-call during incidents.
  • Repair/backfill causing duplicate or lost executions if not idempotent.
  • Authorization misconfiguration exposing workflow payloads or saved-view contents containing PII.
  • Asset/version skew after an upgrade (published assets not refreshed, or image tag mismatched) producing phantom UI behavior.
  • UI/runtime version drift after a partial upgrade, producing phantom queues or missing history.
  • Backlog invisible because the UI reads DB state while the true queue lives in Redis/SQS.

Ramp-up. Operators need the workflow mental model — states, retry semantics, idempotency keys — not just UI clicks; one to two training sessions. Write runbooks for the top four actions (retry, requeue, cancel, backfill) with explicit blast-radius notes, and shadow on-call through one incident cycle before granting production write rights.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
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