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

Clickhouse Laravel Laravel Package

lucasacoutinho/clickhouse-laravel

ClickHouse integration for Laravel that connects your app to the ClickHouse columnar database using familiar query builder and Eloquent-style syntax, making it easy to run fast analytics queries and store large volumes of event data alongside your existing application.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for the analytics write path. This release signals the package is maturing its operational surface, not just its happy path. Buffer sizing is now a deployment-time concern rather than a code-level constant, which is the kind of control you'd otherwise build yourself around a raw ClickHouse client. That strengthens the case for adopting the package instead of maintaining a bespoke buffered-inserter.
  • Capacity and cost planning per environment. CLICKHOUSE_MAX_BUFFERED_ROWS and CLICKHOUSE_MAX_BUFFERED_BYTES let you size ingestion buffers independently for local, staging, and production. Product-side, this maps directly to questions like "how much memory headroom do our queue workers need?" and "how large are our insert batches, and therefore how many parts are we creating in ClickHouse?"
  • Safe defaults as a launch gate. Unset or null limits fall back to 1,000,000 rows / 64 MiB. A team can ship with no tuning at all and still get a bounded, documented envelope — useful when deciding whether a feature can go live before the platform team has finished sizing work.
  • Rollout and rollback without a deploy. Because the knobs are environment entries in the published config, tuning is an infrastructure change. That supports decisions like canary rollout of a high-volume event stream, or dialing buffers down during an incident, without a release train.
  • Fail-fast configuration. Explicit values must be positive integers, so misconfiguration surfaces at boot rather than as silent truncation or a memory blow-up under load. This lowers the operational risk of letting application teams own their own ClickHouse config.
  • Roadmap input. The fact that limits are now tunable but not observable is a gap worth tracking: PM should log a follow-up ask for buffer fill/utilization metrics so sizing decisions stop being guesswork.

When to Consider This Package

Consider it when:

  • You are on Laravel/PHP and writing event, log, or analytics data into ClickHouse at a volume where per-row inserts are wasteful and batching is required.
  • You want buffering behavior that is configurable per environment via standard env vars, consistent with twelve-factor config and your existing secrets/config management.
  • You need a bounded memory footprint with documented defaults you can reason about before you have production traffic data.
  • Your team wants to tune ingestion without cutting a release — i.e., platform/ops owns the tuning, not the application deploy.
  • You are comfortable that "positive integer or null" is the full validation contract; there is no per-tenant or per-table limit granularity described here.

Look elsewhere when:

  • You need exactly-once delivery, transactional guarantees, or replayable durable buffering — an in-process buffer with row/byte caps does not provide these, and this release does not change that.
  • Your volumes are small enough that direct inserts are fine; the config surface is overhead you will never touch.
  • You require rich ETL/scheduling semantics, schema migration tooling, or cross-database orchestration — that is a different class of product.
  • You are not on Laravel/PHP, or you need buffer behavior driven by runtime/dynamic policy rather than static env configuration.
  • You need the buffer limits to be observable or adaptive out of the box; that capability is not evidenced here.

Open question to resolve before committing: the note references "PDO's defaults" of 1,000,000 rows and 64 MiB. Engineering should confirm these defaults are appropriate for your worker memory limits — a 64 MiB buffer multiplied across N workers is the number that matters for capacity planning, and that multiplication is the PM's job to surface, not the package's.

How to Pitch It (Stakeholders)

To executives (one paragraph): This release makes our ClickHouse ingestion path tunable through standard environment configuration instead of code changes, with safe documented defaults and validation that rejects bad values at startup. Practically, that means we can size and adjust our analytics write buffers per environment without a deploy, we get a predictable memory ceiling by default, and we reduce the operational risk of letting teams own their own ingestion settings. It is a small, low-risk change that improves the package's operational maturity and supports adopting it rather than building and maintaining our own buffering layer.

To engineering (the substance): Buffer limits are now ordinary nullable env entries in the published config — CLICKHOUSE_MAX_BUFFERED_ROWS and CLICKHOUSE_MAX_BUFFERED_BYTES. Unset or null means PDO defaults of 1,000,000 rows and 64 MiB; explicit values must be positive integers, so invalid config fails fast rather than silently degrading. Action items: confirm the default 64 MiB is safe multiplied by our worker count, set explicit values in production rather than relying on defaults, and add buffer sizing to the runbook so on-call can adjust during an incident. Upgrade is a config-plus-dependency change with no described breaking change to application code, but the published config file will need republishing or manual merging to pick up the new keys.

Positioning: treat this as an operational-readiness release, not a feature release. Its value is in de-risking adoption and shifting tuning left to infrastructure — not in new user-facing capability.

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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
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