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

On Laravel Laravel Package

complex-heart/on-laravel

complex-heart/on-laravel is a Laravel integration package from Complex Heart. It wires the On package into Laravel with service provider registration, configuration publishing, and framework-friendly conventions, making it easier to use On components inside Laravel applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • This is a thin framework-adapter package: a Laravel service provider plus facade(s) that bind the ComplexHeart vendor SDK into the container and expose config-driven credentials. It is not an application-layer abstraction — it does not model accounts, transfers, or webhooks in domain terms.
  • Fit is good for teams already standardized on Laravel's service-container idioms (config publishing, env-driven secrets, facade access). It is a poor fit for anything that needs framework-agnostic domain code, hexagonal boundaries, or a testable anti-corruption layer — you would end up writing that layer yourself on top.
  • The package's real weight is near zero. Almost all architectural risk, contract surface, and behavioral semantics live in the upstream ComplexHeart SDK and the ComplexHeart "On" platform behind it. Treat the wrapper as replaceable glue and the vendor as the architectural dependency.

Integration Feasibility

  • Mechanically straightforward: composer require, publish config, populate env credentials, resolve the facade. Realistically a half-day spike to a first sandbox call, assuming sandbox credentials are obtainable.
  • The gating item is not code — it is commercial and operational: an active ComplexHeart contract, sandbox tenant, credential issuance (likely OAuth2 client-credentials), and webhook endpoint registration. That procurement path is the actual critical path and typically dominates the engineering estimate.
  • Webhook ingress will need to be built by you: route, signature/HMAC verification, idempotency keys, and queue dispatch. Do not assume the package provides this.

Technical Risk

  • Adoption risk (high). 2 stars, 0 dependents, no ecosystem. There is no community evidence of production use, no StackOverflow corpus, no third-party battle-testing. Anything that goes wrong, you debug alone.
  • Bus factor (high). Effectively a single-maintainer, single-vendor artifact. If ComplexHeart deprioritizes the Laravel wrapper, the SDK remains usable directly and the wrapper is re-implementable in roughly a day — this is the main mitigating factor.
  • Version drift (medium). A wrapper tracking both Laravel majors and an external SDK version is a two-axis compatibility problem. Laravel 12/13 upgrades may outpace wrapper releases. Pin and test.
  • Vendor concentration (high, and pre-existing). Choosing this package is choosing ComplexHeart as your banking-as-a-service provider. The wrapper decision is reversible; the vendor decision is not, cheaply.
  • Data-quality flag. Listed last release of 2026-08-11 does not reconcile with a 2-star, 0-dependent package; verify the Packagist/GitHub metadata before trusting recency signals. A stale-but-stable wrapper and an abandoned one look identical from the outside.

Key Questions

  1. Is ComplexHeart already a committed vendor decision, or is this package the thing pulling us toward them? (If the latter, stop and run a BaaS bake-off.)
  2. Does the wrapper cover webhooks, idempotency, and retry/backoff, or only request/response auth wiring?
  3. Which upstream SDK version does it pin, and how tight is that pin? Does it tolerate SDK patch releases?
  4. What is the maintainer's stated support window and response SLA, if any? Is there a paid support path via ComplexHeart?
  5. Does ComplexHeart expose a stable, documented HTTP API such that direct SDK use (or a hand-rolled client) is a viable fallback?
  6. LGPD/data-residency posture: where does financial and PII data land, and does the package leak credentials into logs or exception traces?

Integration Approach

Stack Fit

  • Native Laravel/PHP. Appropriate for a Laravel monolith or modular monolith handling customer onboarding and payment flows; also workable in a dedicated "banking integration" service if you isolate the facade behind your own interface.
  • Recommended pattern: do not let the facade leak into controllers or jobs. Define a narrow internal port (AccountProvisioner, PaymentInitiator, LedgerQuery) and implement it once with the ComplexHeart facade. This makes the vendor swap a one-adapter change and makes tests hermetic.

Migration Path

  • Greenfield: install, publish config, store credentials in your secret manager (not .env in the repo), implement the port, wire webhooks, ship.
  • If ComplexHeart is replacing an incumbent, run it dual-write/shadow first: mirror the same operations against ComplexHeart in a non-authoritative mode, reconcile outputs, then cut over read paths before write paths.
  • Exit path if the wrapper is abandoned: delete it, bind the upstream SDK client yourself in a small service provider. Budget one to two engineer-days. Document this escape hatch in the ADR so no one treats the wrapper as load-bearing.

Compatibility

  • Verify Laravel version support against your target (the package must support your major, not just the latest). Check PHP constraint alignment with your runtime.
  • Check whether it requires Guzzle v7 specifically, and whether it collides with existing HTTP client pins in a large dependency graph.
  • Confirm the package does not register global middleware, mutate the default HTTP client, or publish conflicting config keys.

Sequencing

  1. Commercial/sandbox access and credential issuance (longest lead time — start first).
  2. Technical spike: auth, one read call, one write call, one webhook round-trip in sandbox.
  3. Internal port + adapter + contract tests against sandbox.
  4. Webhook pipeline (verification, idempotency store, queue, dead-letter).
  5. Reconciliation job and observability, then pilot, then production.

Operational Impact

Maintenance

  • Low code-maintenance surface (thin wrapper) but non-zero attention cost: monitor the repo for releases before each Laravel upgrade and each upstream SDK bump.
  • Add a CI check that asserts your pinned versions still resolve, and a calendar reminder to review the package quarterly for abandonment signals.
  • You own the adapter, the webhook handler, and the reconciliation logic. That is the durable maintenance burden, not the wrapper.

Support

  • No commercial support from the wrapper author; the support relationship is with ComplexHeart. Negotiate an escalation contact and a documented API deprecation policy as part of the contract — this matters more than anything the package does.
  • Internal: designate one engineer as the ComplexHeart subject-matter owner. Single-owner knowledge on a payments integration is a real operational risk; require runbooks.

Scaling

  • Scaling is bounded by vendor API rate limits, not by this package. Establish per-endpoint quotas and enforce them with a client-side limiter before you hit their 429s.
  • Set explicit connect/read timeouts and a retry policy with jittered backoff on idempotent operations only. Default Guzzle timeouts are unacceptable for payment paths.
  • Webhook ingestion should be enqueue-and-ack, not process-inline. Financial event bursts (batch settlements, month-end) will otherwise saturate PHP-FPM workers.
  • Add a circuit breaker around the vendor client so a ComplexHeart incident degrades your checkout gracefully rather than exhausting workers.

Failure Modes

  • Vendor outage → no account provisioning or payment initiation. Requires a customer-facing degradation plan and queued retry with bounded TTL.
  • Webhook loss or duplication → state divergence. Mandatory: idempotent handlers keyed on vendor event ID, plus a scheduled reconciliation poll that compares local ledger state to the vendor's.
  • Credential expiry/rotation → silent 401s. Alert on auth failures distinctly; do not let them surface as generic 500s.
  • Signature validation bypass → if the package does not enforce webhook signatures, an attacker can forge payment-confirmed events. Verify this explicitly before go-live; assume it is your responsibility.
  • Package abandonment → low severity, given the one-day replacement cost. Not a business-continuity threat.
  • Data leakage → SDK debug logging of request bodies containing PII or tokens. Audit log configuration in staging before production.

Ramp-Up

  • Engineering ramp is short: a Laravel developer productive with the facade in under a day; productive with the domain (accounts, transfers, settlement semantics) in one to two weeks.
  • The real ramp cost is domain and compliance literacy — reconciliation semantics, PIX/boleto flows where applicable, LGPD obligations — none of which this package addresses.
  • Plan a two-to-three-week window from sandbox access to production-ready, weighted toward webhooks, idempotency, and reconciliation rather than the wrapper itself.
  • Bottom line for the decision: score this as a vendor decision with a negligible library attached. The wrapper's 2-star, 0-dependent profile is a caution about ecosystem maturity but is not, by itself, disqualifying — the escape hatch is cheap. The questions worth spending time on are the ComplexHeart contract, sandbox access, webhook/API contractual guarantees, and data-residency posture.
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.
ippanelcom/laravel-sdk
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