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

Neo4J Php Client Laravel Package

graphaware/neo4j-php-client

Official PHP client for Neo4j, the graph database. Connect over Bolt or HTTP, run Cypher queries, and map results to objects with a clean, extensible API supporting Neo4j 3.x and 4.x.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • Framework-agnostic HTTP client for Neo4j. It has no Eloquent/ORM parity; it belongs in the repository/infrastructure layer, never in domain models.
  • Paradigm mismatch is the dominant fit issue: Laravel teams model relationally, while this client executes raw Cypher. There is no query builder, no migrations, no schema tooling.
  • No first-party Laravel package (service provider, config, facade). These are small but permanently owned in-house artifacts.

Integration feasibility

  • Composer-installable and PSR-4 compliant, so a spike is cheap. The blocker is release cadence: the package is frozen, so constraint conflicts with Laravel 10/11 (PHP 8.1+) and modern Guzzle/Symfony components are likely and must be proven, not assumed.
  • Client lineage targets the Neo4j 3.x-era HTTP API. Verify auth schemes, multi-database selection, TLS, and cluster routing against the actual target server version before any design work.

Technical risk

  • Archived status means no CVE remediation, no PHP 8.x deprecation fixes, and no server-compatibility updates. composer audit and supply-chain policy will flag it; expect a formal exception.
  • HTTP transport (versus Bolt) adds per-query overhead, offers no native async/reactive execution, and leaves transaction handling manual — raising partial-write and ambiguous-error risk.
  • The low opportunity score (1.35) reflects weak strategic upside relative to maintained alternatives; this is a tactical tool, not a platform bet.

Key questions

  • Target Neo4j edition/version — and is HTTP acceptable, or is Bolt a hard requirement?
  • Do we need OGM/entity mapping, or only parameterized Cypher execution?
  • What are the latency SLO, read/write ratio, and transaction-consistency requirements?
  • Who owns a fork if patching becomes necessary, and what is the exit trigger?
  • Which maintained alternative (community Bolt driver, or a thin wrapper over Neo4j's HTTP API) do we standardize on if this fails the spike?

Integration Approach

Stack fit

  • Register connection config through a Laravel service provider and inject an in-house wrapper, never the vendor client directly. Controllers and models stay clean; execution lives in repositories and queued jobs.
  • Reuse Laravel's config/env, logging, and exception handler. Add a health-check endpoint that proves graph connectivity so deploys fail fast.
  • Route non-critical writes through the queue to decouple user requests from graph latency.

Migration path

  • Introduce it behind a GraphClientInterface (execute(string $query, array $params): Result) with exactly one adapter. That makes a vendor swap a one-file change and is the cheapest insurance available.
  • Pilot on a single bounded, non-critical read path. Expand only after measured latency and error rates are acceptable.

Compatibility

  • Run composer why-not against the target PHP/Laravel versions in a throwaway branch before committing.
  • Test against the real Neo4j server version, not mocks — auth, database selection, and response shape are exactly where stale clients break.
  • Check for dynamic-property and nullability deprecations under PHP 8.2+, which degrade into log noise or fatals at scale.

Sequencing

  1. Compatibility spike across the PHP/Laravel/Neo4j matrix — one to two days, explicit go/no-go.
  2. Define the client interface and configuration contract.
  3. Build the adapter, service provider, health check, and observability (query timing, error taxonomy).
  4. Pilot one read path and one write path; load test at expected concurrency.
  5. Decide keep / fork-and-patch / replace before a second team takes a dependency.

Operational Impact

Maintenance

  • Archived upstream means we own the code. Budget recurring effort for dependency pinning, security exceptions, PHP upgrade patches, and Neo4j server-compat fixes. Every framework upgrade becomes a manual review item.
  • Compliance tooling will flag the abandoned dependency; plan for a documented exception with periodic re-justification rather than a one-time approval.

Support

  • No vendor support path despite the historical "Enterprise Support" branding; community threads are stale. Internal runbooks and a named on-call owner are mandatory.
  • The API surface is small, so debugging is tractable — the risk is environmental (versions, auth, networking), not algorithmic.

Scaling

  • Stateless PHP-FPM workers mean per-request connections; watch Neo4j-side connection limits and handshake overhead.
  • Synchronous HTTP caps throughput. Scale reads with caching or read replicas, not client tuning. No built-in retry, backoff, or circuit breaking — implement at the wrapper.
  • Cluster routing and failover are not abstracted; verify semantics or inherit a single-point-of-failure topology.

Failure modes

  • Silent breakage on Neo4j server upgrade (auth, endpoint, response shape).
  • Timeout cascades: absent a circuit breaker, graph latency propagates to user-facing requests.
  • Partial transactions and ambiguous write failures without idempotency keys.
  • Dependency conflicts surfacing only in CI, blocking unrelated releases.

Ramp-up

  • The client itself is roughly a day of learning; Cypher and graph data modeling are the real cost — budget weeks for a relational-trained team.
  • Require one graph-competent engineer as owner, and document query conventions and anti-patterns (unbounded expansions, per-row traversals).
  • Onboarding debt is real: new hires default to Eloquent. The abstraction layer plus written conventions are what keep the codebase legible.

Bottom line: viable only as a short-horizon, isolated experiment. Either treat it as a build-and-own dependency with a funded exit plan, or select a maintained driver before committing roadmap capacity.

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.
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
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log