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

Influxdb Odm Bundle Laravel Package

javer/influxdb-odm-bundle

A Symfony bundle that integrates InfluxDB with Doctrine-style object-document mapping, letting you define PHP entity classes and persist or query time-series measurements without writing raw InfluxQL by hand.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Bottom line: reject as a direct dependency for a Laravel application — verdict unchanged by v1.4.0. The release is a framework-compatibility bump (Symfony 7, PHP 8.1 floor, dropped doctrine/annotations), not a capability release. It confirms the maintainer is alive and tracking Symfony, which marginally improves the abandonment picture, but it also confirms the package's roadmap is a Symfony roadmap. The core mismatch — a Symfony bundle with no Laravel entry point — and the core unknown — which InfluxDB server line the ODM targets — are both untouched. The recommended path stands: consume the underlying InfluxDB client/ODM library directly behind a thin Laravel service provider, or standardise on a maintained client.

Architecture fit

  • Framework mismatch is structural, not cosmetic, and v1.4.0 makes it explicit. Symfony bundles register through Bundle subclasses, a DI Extension, prepend()/CompilerPass hooks, and services.yaml loading under symfony/dependency-injection + symfony/http-kernel + symfony/config. Laravel has no equivalent runtime: package discovery reads extra.laravel.providers in composer.json, and the container is Illuminate\Container with contextual binding and deferred providers. Adding Symfony 7 to the supported matrix widens the Symfony version range the bundle runs on; it does not create a Laravel entry point.
  • The dependency footprint remains hostile to a Laravel codebase, though marginally less so. Installing it still drags symfony/dependency-injection, symfony/config, symfony/http-kernel and friends into vendor/ purely as ballast. Those packages are not on Laravel's typical transitive path (Laravel pulls symfony/http-foundation, console, process, finder, error-handler — not the DI/kernel stack). Symfony 7 support is mildly helpful here: a Laravel 11/12 app on current Symfony component majors is less likely to hit a hard resolve conflict than it would have been pre-1.4.0. That changes the failure mode from "won't install" to "installs, then does nothing" — which is arguably worse, because it lets a non-functional dependency past composer require review.
  • Dropping doctrine/annotations is a genuine footprint improvement and signals the package is now attributes-only for any mapping metadata. For us it is a non-event: there is no existing consumer code to migrate. Flag it only in case any adjacent team has annotation-based ODM documents against an older version.
  • The persistence model is the deeper concern and is unaddressed. An ODM implies entity/document classes, attribute mapping, and a unit-of-work-ish write path. In a Laravel app, that means either (a) maintaining a parallel object model alongside Eloquent, or (b) mapping Eloquent models to ODM documents at every boundary. Both are ongoing tax for what is, in most Laravel use cases, time-series measurement writes — a problem better served by line-protocol batch writes than by an ORM abstraction.

Integration feasibility

Feasible only as a fork-and-bridge exercise, which changes the cost profile entirely. v1.4.0 does not change the option set, and the PHP 8.1 floor now aligns cleanly with Laravel 10/11/12 minimums (8.1/8.2), removing one prior friction point.

Option Effort Verdict
Install bundle, hand-wire a ServiceProvider that builds the Symfony ContainerBuilder and pulls services out M–L; fragile Avoid — you become the integration maintainer for a dead-end bridge
Install the underlying InfluxDB client/ODM library (skip the bundle), write a ~100–150 line Laravel provider + config file S–M Preferred if you need ODM semantics
Skip the ODM; write measurements directly via an HTTP client or a maintained InfluxDB PHP client behind an interface S Preferred for typical Laravel metrics/event use

A Symfony-DI bridge bought a slightly lower compatibility risk at v1.4.0 than at v1.0.0 — and that is the only thing the release bought us. The second and third options still preserve the genuinely valuable part of the package — its service wiring and configuration conventions — as a reference implementation rather than a runtime dependency.

Technical risk

  • Version-line risk, highest severity, unchanged and now conspicuous. The ODM lineage is InfluxDB 1.x-oriented (line protocol writes / InfluxQL reads). InfluxDB 1.x is end-of-life; 2.x moved to Flux and token/org/bucket auth, and 3.x changed the query surface again. A release that spends its entire changelog on Symfony/PHP compatibility and says nothing about the InfluxDB surface is a signal about where maintenance attention is going. Verify the pinned client dependency and target server version before anything else — this remains the gating question.
  • Abandonment / supply-chain risk, marginally improved. One maintainer, zero stars, zero dependents, but now at least two releases and evident engagement with upstream framework churn. That is a real, if small, positive. It does not make the package safe to take on a floating ^ constraint; vendoring a fork into packages/ with a path repository remains the only defensible way to depend on it.
  • Platform-floor drift risk, new-ish. v1.4.0 raised the minimum to PHP 8.1 and added Symfony 7. Future releases may track Symfony and PHP forward on the maintainer's schedule, not ours. If the bundle were ever installed, a minor bump could raise our effective platform floor. This is a generic risk of depending on a package whose support matrix is driven by another framework's release cadence.
  • Correctness risk in the write path. ODM-style abstractions over time-series stores commonly produce high-cardinality tag sets (mapping every model field to a tag). Cardinality blowup is the classic way to take an InfluxDB instance down; an ODM that maps documents generically makes this easy to do accidentally and hard to see in code review.
  • Silent failure risk. Client libraries for InfluxDB batch and flush asynchronously. Without explicit flush-error handling, metric loss is invisible. This is a design obligation you take on regardless of which client you pick, but a thin, auditable client makes it far easier to satisfy.
  • Still no validation signal. No visible CI, test suite, or production consumers. Adding Symfony 7 to a support matrix without a visible matrix build is itself a claim we cannot check.

Key questions

  1. What InfluxDB server version(s) are in scope — 1.8, 2.x, 3.x — and is that decision already locked by platform/ops? (Now the single blocking question, since the framework side is settled.)
  2. Which exact client/ODM package does this bundle depend on at v1.4.0, at which constraint, and is that package itself maintained?
  3. Did v1.4.0's doctrine/annotations removal change the mapping API in a way that implies a specific ODM major version — and does that version speak InfluxDB 2.x/3.x?
  4. Is the Symfony-only roadmap intentional and permanent, or is Laravel support (a laravel/ sub-package, extra.laravel.providers) contemplated? If permanence is confirmed, we can close the "wait for Laravel support" line of inquiry.
  5. Do we need ODM semantics (document mapping, repositories, hydration) at all, or is this write-only measurement ingestion?
  6. Who owns the fork if we adopt it — and is a fork acceptable to the team's dependency policy?
  7. What is the actual read path (dashboards, Grafana, Flux queries, app queries) and does it constrain the write-side design?
  8. Are there compliance or procurement constraints that rule out a zero-adoption, single-maintainer dependency?

Integration Approach

Stack fit

Poor as shipped, and v1.4.0 confirms the direction of travel. There is no supported path from "Symfony bundle" to "Laravel package" other than rewriting the wiring layer. Treat the bundle as documentation of intent and as a reference config schema, not as an installable component.

Migration path

  1. Decouple the decision. Separate "do we want InfluxDB/ODM semantics" from "do we want this package." Run them as two decisions with two owners. Resolving the first usually resolves the second. v1.4.0 does not merge these questions; it only removes the PHP-version objection.
  2. Confirm the server line. If the target is 2.x/3.x, stop here and select a client that speaks the current API. This alone may invalidate the ODM layer, and it is now the only remaining gate.
  3. Extract the pattern, not the package. Read the bundle's DependencyInjection/Configuration.php and extension class to recover its config schema (connections, hosts, batch size, retention, mapping paths), then re-express as config/influxdb.php + a deferred ServiceProvider with a singleton client binding. Typical size: 100–150 lines plus a facade and a testing fake. The reference implementation is unchanged in shape by v1.4.0.
  4. Fork only if ODM semantics are truly required. Add the library (not the bundle) as a path or VCS repository, pin the commit, and record an explicit review date. Do not take a floating ^ constraint on a zero-adoption package — and specifically do not let a v1.4.0-driven composer require succeed just because the PHP floor now resolves.
  5. Wrap everything behind an application-owned interface (MetricsWriter, TimeSeriesRepository) so the vendor choice is a one-file swap. This is the single highest-leverage step and costs almost nothing.

Compatibility

  • PHP 8.1 floor is now unambiguously compatible with Laravel 10/11/12. The PHP constraint is no longer a blocker — which should not be mistaken for fit.
  • Symfony 7 support means the bundle's DI/kernel/config requirements can co-exist with current Symfony component majors. A Laravel 11/12 app will likely resolve the install. It still will not auto-register or execute without a hand-built ContainerBuilder bridge, so the practical outcome is a dependency that sits in vendor/ while contributing nothing — the worst of both worlds for dependency-policy review.
  • If the bundle is installed at all, expect future conflict pressure on symfony/dependency-injection and symfony/http-kernel majors whenever either framework moves. Budget for that or avoid it.
  • doctrine/annotations removal is a breaking change for any annotation-based document mapping. No impact for us; note it if other teams are consuming the ODM directly.
  • InfluxDB client/server compatibility remains the binding constraint, not PHP and not Symfony.

Sequencing

  1. Week 1: server-version decision + dependency-chain audit of the underlying client at v1.4.0. (S)
  2. Week 1–2: spike a direct-client write path with batching, retry, and a dead-letter fallback. (S–M)
  3. Week 2: cardinality review of the proposed tag schema with whoever owns the dashboards. (S, high value)
  4. Week 3: land the ServiceProvider + interface + fake; wire one non-critical producer as a canary. (S–M)
  5. Week 3–4: expand producers; add write-failure alerting. (M)
  6. Deferred: ODM mapping layer, only if a concrete read/hydration use case justifies it.

Operational Impact

Maintenance

  • Taking the bundle as a dependency means you own an unsupported integration indefinitely: no upstream fixes to the wiring layer, no security patches, no Laravel-version compatibility work done for you. v1.4.0 shows the maintainer will track Symfony majors; it gives no reason to expect Laravel support.
  • A forked or vendored copy adds a standing obligation: one named owner, a pinned commit, a review cadence, and a documented exit plan. The v1.4.0 bump is a useful reminder that "review cadence" means re-reading changelogs and re-testing on someone else's release schedule.
  • The thin-provider alternative has near-zero maintenance: it depends on a maintained client and, critically, on an interface the application owns.

Support

  • Zero stars and zero dependents still means no community to escalate to and no prior art for failure modes. Two releases instead of one improves "is this abandoned?" but not "who helps at 2am?"
  • Internal expertise must be built from reading source. Assume 1–2 days of ramp for whoever owns it, and that the owner is a single point of knowledge.
  • No vendor support contract exists for a Symfony bundle integration on a Laravel app. Escalation path remains "read the code."

Scaling

  • Write throughput is dominated by batch size, flush interval, and retry policy — all of which you must own regardless of package choice. Budget: define flush cadence, buffer ceiling, and drop-vs-block behaviour under backpressure.
  • Cardinality is the real scaling ceiling. If ODM document mapping encourages field-as-tag, series count grows with data diversity and the storage engine degrades non-linearly. Enforce a tag allowlist in the write path rather than trusting the mapping layer.
  • InfluxDB unavailability should degrade to dropped/buffered metrics, never to elevated request latency. Force writes off the request path (queue job or in-process non-blocking buffer with bounded memory).
  • Retention policies and downsampling tasks are operational obligations the package will not manage for you; assign them explicitly.

Failure modes

Failure Symptom Mitigation
Bundle wiring breaks on Laravel/Symfony upgrade Container fails to resolve; runtime exception at boot Don't install the bundle; own the provider
Bundle installs cleanly but does nothing Dependency present in vendor/, zero services registered; discovered only at feature-completion Treat framework fit as a design gate, not a composer require gate
Upstream package abandoned/deleted composer install fails on a clean machine Vendor/fork with pinned commit
Upstream raises PHP/Symfony floor Minor bump forces app platform upgrade or blocks patch uptake Pin the commit; review releases on our cadence
InfluxDB unreachable Silent metric loss, or request latency if writes are synchronous Async buffered writes + explicit drop accounting + alert on write-error rate
Cardinality explosion Rising memory/disk on InfluxDB, query slowdown, eventual OOM Tag allowlist, series-count monitoring, review gate on schema changes
Flush errors swallowed by client Dashboards quietly go stale Instrument flush failures; dead-letter queue; freshness SLO on key measurements
InfluxDB major upgrade ODM's query/write surface no longer matches server Server-version decision made up front; interface boundary enables swap
Single maintainer unavailable No answers on behaviour; no patches Internal owner + read-the-source ramp + documented fork notes

Ramp-up

  • For the recommended path (direct client behind an interface): roughly half a day for a PHP developer familiar with Laravel service providers, plus one day for batching/retry semantics.
  • For the bundle-bridge path: 2–4 days of spike work, with a meaningful chance of concluding it isn't viable — which is itself a useful outcome if it is time-boxed and decided early. v1.4.0 shortens the compatibility leg of that spike but does not touch the viability question.
  • Recommend a strict spike timebox with an explicit go/no-go gate after the server-version and dependency-chain audit. v1.4.0 improves the package's framework hygiene without addressing a single one of the reasons it was rejected; the expected value of that gate remains "proceed with the direct-client alternative," and the assessment should be written so that conclusion is reachable without political friction.
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.
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk