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

Laravel Process Stamps Laravel Package

orisintel/laravel-process-stamps

Laravel Process Stamps adds lightweight provenance to Eloquent models, automatically recording the command, job, request, or test that created or updated each record. Trace data changes, debug background workflows, and answer "where did this row come from?" with minimal setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Process Stamps is an Eloquent event-sidecar: it hooks created/updated, resolves the current execution context (HTTP request, artisan command, queued job, scheduler), and writes that context into columns on the model's own row. That is a clean fit for Laravel monoliths and modular monoliths where Eloquent is the only write path and there is no existing row-level provenance. It is a poor fit where writes arrive via DB::table() bulk inserts/upserts, raw SQL, queue consumers outside Laravel, ETL jobs, or another service sharing the database — those writes will silently carry no stamp, which is worse than no feature at all because it creates false confidence in an audit or forensics workflow. Treat coverage, not capability, as the gating question.

Scope framing for product. The package records which process wrote a row (request / command / job / scheduler, plus an identifier), not which person. If the underlying requirement is "who changed this record" in a compliance or customer-facing sense, this is a correlation aid that still needs request-ID-to-user mapping in your logs, not a solution. If the requirement is "why did this row change and which deploy/command/job did it," it is a genuinely cheap win. Get that distinction written down before it enters a roadmap as "audit logging."

Integration feasibility. Mechanically easy: composer require, publish config, add the stamp columns to each opted-in table via migration, add HasProcessStamps to the model. No service provider gymnastics, no schema ownership, MIT licensed. The effort is not in the code, it is in the surface area: one migration and one index decision per stamped table, plus a decision about which models are worth stamping at all.

Technical risk.

  • Staleness is the dominant risk. Last release 2021-04-16 — roughly four years, against a framework that ships a major annually. Verify the package's PHP/Laravel constraint against your target version before anything else; if it caps at Laravel 8, the real decision is "vendor and maintain a fork" or "don't." 94 stars and a single-maintainer profile means no security-response or compatibility-backport expectation should be assumed.
  • Context correctness in long-lived processes. Queue workers, schedule:run, and Octane keep processes alive across many units of work. If context is resolved once at boot or not reset between jobs, stamps will be plausible-looking but wrong — the most expensive failure class for this kind of tool. This must be validated empirically, not read off the README.
  • Write-path coupling. An event listener on every create/update is on the critical path of your writes. Confirm the package swallows its own resolution failures (null stamps) rather than propagating exceptions that would fail a legitimate write.
  • Data hygiene. Process names often derive from routes, URIs, or command strings. Confirm that no PII, tenant identifiers, or secrets can land in a stamped column that later gets exported or displayed.
  • The "zero-overhead" claim is marketing. It is a small constant cost, not zero, and it compounds with index decisions on hot tables. Measure on your highest-write model before broad rollout.
  • Source-document mismatch — flag this explicitly. The release notes and prior PM/TPM assessments supplied alongside this package describe a cache-lock vs. upsert concurrency-control package (lock TTLs, stale locks, cache-outage failure modes). That has nothing to do with process stamping. Do not carry those conclusions — or that release history — into a decision about this package. It also means the package's real maintenance history and changelog have not actually been reviewed yet; someone needs to open the repo and read it.

Key questions.

  1. What PHP/Laravel versions does the current constraint support, and has anyone tested it against our target version?
  2. Is there a maintained fork or active PR queue, or is this effectively end-of-life?
  3. Are the stamp columns configurable per model, and can the migration be published rather than auto-run?
  4. What happens when context cannot be resolved — null columns, a sentinel value, or an exception on the write path?
  5. How is context propagated and reset across queued jobs, nested jobs, scheduler runs, and Octane workers? Is there a test that proves it?
  6. Which of our write paths bypass Eloquent entirely, and what is the resulting stamp-coverage percentage per table?
  7. Can stamps be correlated to an authenticated user, and through what identifier?
  8. Does the package expose a query scope/filter, or are we writing our own reporting queries against the columns?

Integration Approach

Stack fit. Good for a Laravel application on a supported PHP version with Redis/MySQL/Postgres, an Eloquent-dominant data layer, and a support or platform team that already debugs from logs and request IDs. It slots in alongside existing observability rather than replacing it: stamps answer "which process touched this row," logs and tracing answer "what else was happening at the time." The two are more useful together than either alone, which is a reasonable pitch — but do not let it be sold as a replacement for structured logging or tracing.

Buy vs. build. Be honest internally: the durable surface here is a model observer plus a context resolver, on the order of a few hundred lines. With a 2021 last release, the "buy" argument is not engineering effort saved — it is near zero. The real reason to adopt is speed-to-value on an existing Laravel 6/7/8 application where the constraint already resolves. The real reason to build is that you need it on Laravel 11/12, need coverage for non-Eloquent writes, or need user attribution. Decide which of those is true before writing a ticket.

Migration path. Pin the exact version. Publish config and review it. Add nullable stamp columns (type, name, identifier — with names matching your org's conventions rather than the package defaults, since these will be read by humans under pressure) to one low-risk model first. Deploy. Verify stamps are correct for a request, a command, a queued job, and a scheduled task — all four, because that is where the context-resolution bugs live. Only then expand to a second and third model. Historical rows will be null forever; state that expectation to stakeholders up front so no one asks for a backfill.

Compatibility. Two layers to check: package-to-framework (Composer constraints), and data-to-schema (column name collisions with existing created_by/updated_by conventions, and whether any existing code already writes those columns). If your models already have audit-ish columns, adding these alongside them creates a two-truths problem that will confuse support — either migrate the old columns out of the read path or don't stamp those models.

Sequencing.

  1. Confirm framework/PHP compatibility; if it fails, stop and re-scope as build-or-fork.
  2. Inventory write paths per candidate table — Eloquent vs. everything else — and compute realistic coverage.
  3. Choose 1–3 high-value models (support-triage targets, not compliance targets) with Eloquent-only writes.
  4. Ship columns nullable, ship the trait, ship nothing user-facing.
  5. Validate the four context types in staging with production-like queue topology.
  6. Wire stamps into exactly one operational surface (support tooling, an admin detail view, or log enrichment) so there is a demonstrated payoff.
  7. Expand or abandon based on whether anyone actually used it in step 6.

The failure mode to avoid is a broad, cheap rollout across every model — that maximizes write overhead and index bloat while producing a set of stamps nobody has a workflow for.

Operational Impact

Maintenance. Two distinct burdens. First, package maintenance: unmaintained since 2021, so you own compatibility with future Laravel majors whether you plan to or not. Budget for a fork decision at the next framework upgrade rather than being surprised by it. Second, schema maintenance: every new model that should be stamped needs a migration and an index decision, and that will not happen on its own — it needs to be in the model-creation checklist or it will decay into partial coverage within two quarters.

Support. This is where the value shows up and where the runbook matters. Support and on-call need to know: what a null stamp means (write did not come from an instrumented path, or predates the feature), what a scheduler stamp means, how to turn a process identifier into a human (log correlation), and that a stamp is evidence of a process, not proof of a person. A one-page runbook is sufficient and should be written during rollout, not after the first confusing ticket. Also brief support that stamps are not tamper-evident — anyone with SQL access can change them — so they should not be quoted as authoritative in a dispute.

Scaling. Cost profile is mild but real and permanent: additional columns on every insert and update, additional index maintenance on every write to stamped tables, and unbounded row growth that is not archivable independently of the row. On a high-write table (event logs, counters, session-ish rows), stamping is almost certainly not worth it — exclude those explicitly. On low-to-moderate-write business tables (orders, subscriptions, accounts, config records), the cost is negligible and the diagnostic return is high. The scaling decision is therefore per-model, not per-application, and should be documented as an allowlist rather than left to whoever adds the next trait.

Failure modes.

  • Silent mis-stamping in long-lived workers — the most damaging, because wrong data is worse than absent data and it looks legitimate. Detect with a periodic assertion or a test that runs two different jobs in the same worker and checks the stamps differ.
  • Coverage gaps — bulk/raw writes invisible, producing gaps that read as "nothing changed this row" rather than "we weren't watching." Document known gaps.
  • Write-path interference — context resolution throwing inside a model event and failing an otherwise valid write. Verify behavior on the first model before expanding.
  • Null-stamp ambiguity — three different causes (pre-feature, uninstrumented path, resolution failure) collapse into one value. Consider a sentinel or a distinguishing value if this matters to support.
  • PII leakage into process-name columns via route/URI-derived values, which then propagates into exports, dashboards, and screenshots.
  • Abandonment — no upstream fix at the next framework upgrade, discovered mid-release. Pin the version and treat the fork as a known future cost, not a contingency.

Ramp-up. Low for engineers — it is a trait and a migration, learnable in an afternoon. The ramp-up that actually matters is on the consumption side: support, QA, and analysts need to be taught what a stamp does and does not prove. Budget more time for that half-hour briefing than for the implementation, because the risk is not that the team can't install it — it's that someone reads a stamp as a definitive audit record six months from now and makes a decision on it.

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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast