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

Singlestore Laravel Laravel Package

singlestore/singlestore-laravel

Official SingleStore integration for Laravel, providing a native database driver with Eloquent and query builder support. Connect Laravel apps to SingleStore for fast distributed SQL, migrations, schema management, and familiar Laravel workflows.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

The package is a first-party Laravel database driver from SingleStore Labs that registers singlestore as a connection driver on top of Laravel's Illuminate\Database layer. Architecturally it is a thin, MySQL-protocol-compatible adapter: because SingleStoreDB speaks the MySQL wire protocol, the driver largely subclasses Laravel's MySQL connector and connection classes, which is the right design choice for minimizing surface area but also means the integration inherits all MySQL-driver assumptions (auto-increment semantics, transaction behavior, schema introspection shape) that SingleStore only partially honors.

Architecture fit. For a Laravel shop already on MySQL, this is a low-friction architectural swap at the connection layer. Eloquent, the Query Builder, and most of the existing data-access code should function unchanged. The gap is at the schema layer: SingleStore's differentiating features — shard keys, columnstore tables, reference tables, sort keys — are not expressible through Laravel's schema builder, so teams must drop to raw DDL for essentially every table that matters. That is the central architectural caveat: the driver makes SingleStore queryable from Laravel but not fully manageable through Laravel's migrations.

Integration feasibility. High for a proof of concept. Auto-discovery registers the service provider, connection config is a standard config/database.php entry, and Composer install is unremarkable. Feasibility drops for production hardening because the interesting operational semantics (transactions across shards, UPSERT, ON DUPLICATE KEY, read/write splitting) may not map cleanly onto Laravel's contracts and will need verification against the package's actual implementation rather than its README.

Technical risk. The most concrete signal is dependents: 0 combined with 234 stars — this is a vendor-published package with real-world adoption implied by the SingleStore customer base but no observable downstream package ecosystem and no public dependent graph. That means limited community-tested edge cases and a support burden that falls entirely on the vendor and your own team. Secondary risks: (1) Laravel major-version drift — database drivers break on minor changes to Connection/Grammar internals, and you must confirm the supported Laravel matrix; (2) migration tooling generating MySQL DDL that SingleStore silently accepts but executes with different physical characteristics (e.g., rowstore vs. columnstore defaults); (3) transaction semantics diverging from developer expectations, a classic source of production data bugs.

Key questions to resolve before commitment. Which Laravel majors and PHP versions are officially supported, and what is the version-support policy? Does the driver implement Schema\Builder overrides for columnstore/shard-key/reference tables, or is raw SQL mandatory? How are cross-shard transactions and DB::transaction() handled — do they fail loudly or degrade silently? Is read/write splitting supported, and does it interact correctly with Laravel's read/write connection config? What is the upgrade cadence relative to Laravel releases?

Integration Approach

Stack fit. Excellent for the specific profile of a Laravel application that has outgrown a single MySQL instance and needs real-time analytical queries alongside transactional workload — the canonical SingleStore use case. Poor fit for teams that need deep ORM-driven schema management or heavy multi-statement transactional workloads. The MySQL protocol compatibility is the load-bearing property here; it means the integration is a connection swap, not a rewrite.

Migration path. Recommended sequencing is additive rather than substitutive. Introduce SingleStore as a secondary connection first (analytics/reporting/read-heavy paths) while MySQL remains the system of record. This validates the driver against real Eloquent queries, exposes grammar gaps, and contains blast radius. Promote to primary only after schema, transaction, and migration behavior are proven. A full cutover from MySQL is viable but should follow, not precede, that validation.

Compatibility. Query Builder and Eloquent should work; the risk concentrates in four areas to test explicitly: schema builder output, JSON column handling, upsert/insertOrIgnore semantics, and pagination/count on large distributed result sets. Migration files written for MySQL should be treated as untrusted until replayed against SingleStore.

Sequencing.

  1. Spike: install, register, run a representative slice of existing Eloquent queries against a dev cluster.
  2. Schema: hand-author DDL for shard keys, columnstore, and reference tables; establish a convention for how these live alongside Laravel migrations (likely a raw-SQL migration folder or a schema-dump workflow).
  3. Transaction audit: enumerate every DB::transaction() call site and classify as single-shard-safe or at-risk.
  4. Dual-write or read-replica cutover with observability in place.
  5. Retire the MySQL path once parity is demonstrated.

Operational Impact

Maintenance. Vendor-maintained (SingleStore Labs) under Apache-2.0, released as recently as 2026-06-09, which suggests active stewardship. The real maintenance cost is not the package — it is the schema-as-raw-SQL discipline it forces. Your team owns a growing body of hand-written DDL outside Laravel's migration tooling, and that is a permanent, compounding operational tax that must be staffed, not absorbed.

Support. Commercial SingleStore customers get a vendor support channel; the open-source package itself has effectively no community support tier given zero dependents. Do not plan on finding answers on Stack Overflow — plan on a vendor relationship or internal ownership of the driver source.

Scaling. This is the package's strongest dimension. SingleStore's distributed architecture scales horizontally for both ingest and analytical query load, and the driver does not interfere with that. The scaling concern is connection management: Laravel's per-request connection model versus a distributed cluster's connection limits warrants a proxy (e.g., a connection pooler) in front of the cluster at moderate-to-high concurrency.

Failure modes to instrument.

  • Silent semantic drift: a query that returns correct results on MySQL returning different results (ordering, NULL handling, aggregate precision) on SingleStore. Mitigate with a differential test harness run against both engines pre-cutover.
  • Transaction partial-commit: cross-shard writes that succeed on some partitions and fail on others. Mitigate by auditing call sites and enforcing single-shard transaction patterns.
  • Migration rot: raw DDL drifting from Eloquent model expectations as the app evolves.
  • Driver/Laravel version skew: a Laravel upgrade breaking the connection class with no community fork to fall back on.
  • Cluster connectivity: distributed clusters have more failure surfaces than a single MySQL host; Laravel's reconnect behavior should be tested under node loss.

Ramp-up. Non-trivial and under-estimated by most teams. Engineers must learn SingleStore's physical model — shard keys, columnstore vs. rowstore, reference tables, sort keys — because these are not abstracted away by the driver and directly determine query performance. Budget meaningful enablement time beyond "it's MySQL-compatible." The package lowers the query-layer learning curve but leaves the schema-design learning curve fully intact.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle