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

Phpclickhouse Laravel Laravel Package

glushkovds/phpclickhouse-laravel

Laravel integration for ClickHouse, adding a database driver, query builder, schema and migration support, and Eloquent-style models for analytics workloads. Query ClickHouse from Laravel, run raw SQL, manage tables, and insert large datasets efficiently.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Shipping analytics features on the current stack instead of a new platform team. This package lets the existing Laravel engineers talk to ClickHouse through familiar conventions (config/database.php, the DB facade, container bindings). The PM decision it unlocks is "build the reporting/telemetry epic with the team we have" versus "hire or contract a data platform function." That is a headcount and timeline decision, not a library choice.
  • Build vs. buy on the integration layer. The realistic alternative is not a vendor contract — it is a bespoke ClickHouse client wrapper someone on the team writes and maintains anyway (connection config, DI bindings, error handling, test harness). At ~205 stars, MIT-licensed and thin, this package is that wrapper, already written. Frame it as "adopt a shim we will own" against "write the same shim on our sprint budget." The second option is rarely cheaper once you count review and maintenance.
  • Re-sequencing the reporting roadmap. The most common trigger for evaluating this is a transactional primary (Postgres/MySQL) degrading under reporting queries. Adopting this converts "migrate analytics to ClickHouse" from a platform migration into a configuration-plus-repository change. That changes the estimate and, more importantly, lets the reporting epic move ahead of the platform work rather than behind it.
  • Deferring the warehouse decision. At small-to-mid volumes this substitutes for a managed warehouse plus ETL tooling. The PM-relevant outcome is that "do we need Snowflake/Fivetran/dbt?" becomes a decision you can defer one or two quarters with data behind it, rather than one you make on vibes at the start of an analytics initiative.
  • Cost and scaling posture as a talking point. ClickHouse storage and compute are cheap relative to vertically scaling a transactional primary. Because integration cost here is measured in days, the trade-off can be evaluated inside a timeboxed spike instead of needing a quarter of committed roadmap to justify exploring.
  • Scope boundaries the PM must hold firm on. This fits internal dashboards, product telemetry, log/event retention, append-only audit history, and near-real-time aggregation. It does not fit system-of-record data, transactional workloads, or per-row update/delete patterns. Those are product-scope exclusions to state explicitly, because a stakeholder will inevitably ask "can we just put everything in ClickHouse?" and the answer needs to be no, with a reason.
  • Risk posture as a decision input. Effectively zero downstream dependents in the index and a single-maintainer model mean this is a vendor-if-adopted dependency. The PM decision is not "is the code good" but "are we willing to own a small forkable component with community-only support." That is a governance call, and it should be made deliberately rather than discovered during an incident.

When to Consider This Package

Consider it when:

  • You are on Laravel (PHP 8+) and want ClickHouse reachable through idioms the team already uses — config/, service container, facades, queued jobs. If the team would otherwise be learning a new runtime to ship a dashboard, this removes that friction entirely.
  • Your analytics volume is moderate and you value one deployable artifact and one on-call rotation over best-in-class ingestion throughput. This is a deliberate trade: operational simplicity purchased with performance headroom.
  • You are running a time-boxed spike or PoC and need to validate the ClickHouse query shape — partitioning, ordering keys, aggregation latency — before committing to architecture. The package makes the spike cheap enough to be worth doing.
  • You accept that the real dependency is smi2/phpClickHouse and are prepared to evaluate that library's health, query builder, and HTTP client behavior on its own merits. The adapter is a thin layer; the client underneath is where the substance lives.
  • You are willing to wrap it behind an internal interface (e.g., AnalyticsRepository) and pin an exact version. The codebase is small enough that forking is a realistic fallback — which is precisely what makes the risk tolerable.
  • A first use case is read-only: an internal dashboard, an analytics endpoint, a reporting surface. Read-only first is the right sequencing, not a limitation of the package.

Look elsewhere when:

  • You need Eloquent-style modeling. This is a raw client behind a facade, not an ORM. Teams expecting relationships, casts, and model events will be disappointed and will build a shadow abstraction on top — at which point you have paid for the abstraction twice and should have designed it deliberately.
  • Ingestion throughput is the requirement. High-row-rate inserts, async inserts, batching, Kafka/Vector ingestion, or materialized-view-heavy pipelines belong in a dedicated service or ClickHouse's native interfaces — not in a synchronous PHP request path. If the product requirement is "ingest 50k events/sec," this is the wrong layer and the conversation should be about architecture, not packages.
  • You run Octane/Swoole or heavy queue-worker concurrency and need proven connection lifecycle behavior. Treat this as unverified until your spike proves it; connection leaks and stale sockets are the classic failure mode in long-running PHP processes.
  • You need mature schema management (migrations/DDL versioning), RBAC, or multi-tenant isolation as first-class features. These are gaps to validate explicitly — the PM question is "who owns schema evolution, and in what tool?" If the answer is "nobody yet," that is a staffing decision to surface early, not a bug to file later.
  • Governance requires a supported vendor, an SLA, or more than one maintainer. With ~205 stars, no dependents, and a single-maintainer model, this is a procurement decision rather than a technical one. Do not let a technical evaluation paper over it.
  • You are not on Laravel, or your analytics surface is large enough that a managed platform (ClickHouse Cloud, Tinybird) removes more work than this adapter saves. The adapter saves integration days; a managed platform saves operational years. Know which problem you have.

One diligence note worth carrying into the decision: the published metadata shows a release dated in the future, which is a signal to verify the repo's actual release cadence firsthand rather than trust the index.

How to Pitch It (Stakeholders)

For executives: We can ship the reporting and product-analytics roadmap on infrastructure we operate, with the team we already have, for the price of an MIT license. Concretely: this is a small, well-scoped adapter that lets our existing Laravel engineers read and write to ClickHouse — the columnar database built for exactly this analytical workload — instead of us hiring a data platform team or signing a warehouse contract. Integration cost is measured in days, not a quarter, and there is no license spend. The risk is concentration, not capability: one maintainer, a modest community, and a small code surface. That risk is mitigated by design — we wrap it behind our own internal interface, so replacing it later is a contained piece of work rather than a rewrite, and the license permits us to fork if we ever need to. Recommendation: approve a short, timeboxed spike, and gate broader adoption on that spike passing explicit criteria. What I am asking for is not a platform commitment — it is a bounded evaluation with a cheap exit.

For engineering: This is a service provider plus configuration plus a facade over smi2/phpClickHouse. It puts ClickHouse credentials in config/, gives us a container-resolved client, and keeps query code next to the feature that owns it instead of in a separate repo or a Python service. What it does not give us: an ORM, migrations or DDL versioning, proven connection pooling under Octane/Swoole, vendor-backed support, or a guaranteed upgrade path across Laravel and ClickHouse versions. Before we commit, the spike must answer four questions: (1) does the connection survive our queue-worker and Octane topology without leaking or going stale; (2) how do we manage DDL and schema evolution — what tool owns it; (3) what does failure look like when ClickHouse is slow or down — do we degrade gracefully or block the user request; and (4) what is our insert batching, retry, and idempotency story, given ClickHouse is not transactional. Non-negotiables if we adopt: pin the exact version in Composer, hide the package behind an internal AnalyticsRepository interface so the swap cost stays in days, run integration tests against a real ClickHouse container in CI, and assign a named owner who tracks upstream releases. Assume we may have to fork or vendor it, and budget a small maintenance allowance accordingly — then verify the release cadence firsthand, because the index metadata shows a future-dated release and we should not plan against it without checking the repo directly.

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.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route