PHPackages                             ecotone/dbal - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. ecotone/dbal

ActiveLibrary[Database &amp; ORM](/categories/database)

ecotone/dbal
============

Doctrine DBAL integration for Ecotone — database-backed message channel, outbox pattern, dead letter queue, durable saga state storage, and document store.

1.319.0(today)2232.9k—0.8%49Apache-2.0PHPCI failing

Since Jan 12Pushed 3w ago1 watchersCompare

[ Source](https://github.com/ecotoneframework/dbal)[ Packagist](https://packagist.org/packages/ecotone/dbal)[ Docs](https://docs.ecotone.tech/)[ GitHub Sponsors](https://github.com/dgafka)[ RSS](/packages/ecotone-dbal/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (68)Versions (510)Used By (9)

This is Read Only Repository
============================

[](#this-is-read-only-repository)

To contribute make use of [Ecotone-Dev repository](https://github.com/ecotoneframework/ecotone-dev).

[ ![](https://github.com/ecotoneframework/ecotone-dev/raw/main/ecotone_small.png?raw=true)](https://ecotone.tech)

[![Github Actions](https://github.com/ecotoneFramework/ecotone-dev/actions/workflows/split-testing.yml/badge.svg)](https://github.com/ecotoneFramework/ecotone-dev/actions/workflows/split-testing.yml/badge.svg)[![Latest Stable Version](https://camo.githubusercontent.com/6d3fefd097526666ca1a13fdfa023a2d467c0098ea4f7d560fdea28943d80540/68747470733a2f2f706f7365722e707567782e6f72672f65636f746f6e652f65636f746f6e652f762f737461626c65)](https://packagist.org/packages/ecotone/ecotone)[![License](https://camo.githubusercontent.com/0c825aa97178c47064bc47ec45c9d4148075c860403419e45dbabcb9050d510c/68747470733a2f2f706f7365722e707567782e6f72672f65636f746f6e652f65636f746f6e652f6c6963656e7365)](https://packagist.org/packages/ecotone/ecotone)[![Total Downloads](https://camo.githubusercontent.com/2aec5363d172979490a34009950f2a61290dbb48965361bcbfda9aa28504f7e7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f65636f746f6e652f65636f746f6e65)](https://packagist.org/packages/ecotone/ecotone)[![PHP Version Require](https://camo.githubusercontent.com/b14eabeef1e6ee3612c8d62386855072c5fdad12affbbd987935c1397ebea214/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f65636f746f6e652f65636f746f6e652f7068702e737667)](https://packagist.org/packages/ecotone/ecotone)

**Ecotone is the PHP architecture layer that grows with your system — without rewrites.**

From `#[CommandHandler]` on day one, to event sourcing, sagas, outbox, and distributed messaging at scale — one package, same codebase, no forced migrations between growth stages. Declarative PHP 8 attributes on the classes you already have.

Doctrine DBAL integration
-------------------------

[](#doctrine-dbal-integration)

Database-backed foundation for Ecotone, built on Doctrine DBAL. Use your existing relational database as a [message transport](https://ecotone.tech/asynchronous-communication), outbox, dead letter store, or [durable saga state](https://ecotone.tech/durable-workflows) — no extra infrastructure required to get started.

- **DBAL message channel** — durable [asynchronous channel](https://ecotone.tech/asynchronous-communication) backed by your database
- **Outbox pattern** — atomic commit of business state and outbound messages, so no event is lost on crash ([details](https://docs.ecotone.tech/solutions/unreliable-async-processing))
- **Dead Letter Queue** — failed messages persisted to your database, inspectable and replayable
- **Saga state storage** — non-event-sourced sagas persist their state per `#[Identifier]` in your DB
- **Document Store** — aggregates persisted as JSON documents, no ORM required
- **Business Interfaces** — declarative DBAL query methods via `#[DbalBusinessMethod]`
- **Transactional message handling** — each handler wrapped in a DB transaction automatically

Works with Doctrine ORM, Eloquent, and raw PDO — pick the ORM your framework already uses.

Visit [ecotone.tech](https://ecotone.tech) to learn more.

> Works with [Symfony](https://docs.ecotone.tech/modules/symfony-ddd-cqrs-event-sourcing), [Laravel](https://docs.ecotone.tech/modules/laravel-ddd-cqrs-event-sourcing), or any PSR-11 framework via [Ecotone Lite](https://docs.ecotone.tech/install-php-service-bus#install-ecotone-lite-no-framework).

Getting started
---------------

[](#getting-started)

See the [quickstart guide](https://docs.ecotone.tech/quick-start) and [reference documentation](https://docs.ecotone.tech). Read more on the [Ecotone Blog](https://blog.ecotone.tech).

AI-Ready documentation
----------------------

[](#ai-ready-documentation)

Ecotone ships with MCP server, Agentic Skills, and LLMs.txt for any coding agent. See the [AI Integration Guide](https://docs.ecotone.tech/other/ai-integration).

Feature requests and issue reporting
------------------------------------

[](#feature-requests-and-issue-reporting)

Use [issue tracking system](https://github.com/ecotoneframework/ecotone-dev/issues) for new feature request and bugs. Please verify that it's not already reported by someone else.

Contact
-------

[](#contact)

If you want to talk or ask questions about Ecotone

- [**Twitter**](https://twitter.com/EcotonePHP)
- ****
- [**Community Channel**](https://discord.gg/GwM2BSuXeg)

Support Ecotone
---------------

[](#support-ecotone)

If you want to help building and improving Ecotone consider becoming a sponsor:

- [Sponsor Ecotone](https://github.com/sponsors/dgafka)
- [Contribute to Ecotone](https://github.com/ecotoneframework/ecotone-dev).

Tags
----

[](#tags)

PHP, Doctrine DBAL, Ecotone, Outbox, Dead Letter Queue, Document Store, Message Channel, Transactional Messaging

###  Health Score

63

—

FairBetter than 99% of packages

Maintenance98

Actively maintained with recent releases

Popularity39

Limited adoption so far

Community23

Small or concentrated contributor base

Maturity77

Established project with proven stability

 Bus Factor1

Top contributor holds 78% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

508

Last Release

0d ago

Major Versions

0.12.26 → 1.0.02021-03-04

PHP version history (3 changes)0.8.0PHP ^7.3

0.11.11PHP &gt;=7.4

1.0.0PHP &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/1b6139b0dc15c550b22c76954ec6a96ac6c46b4c19b4a3c1e93c2146481e109e?d=identicon)[dgafka](/maintainers/dgafka)

---

Top Contributors

[![dgafka](https://avatars.githubusercontent.com/u/6060791?v=4)](https://github.com/dgafka "dgafka (543 commits)")[![ecotoneframework-bot](https://avatars.githubusercontent.com/u/174240763?v=4)](https://github.com/ecotoneframework-bot "ecotoneframework-bot (153 commits)")

---

Tags

phpdoctrinedbalmessagingecotonedocument storeoutboxsagadead-letter-queuedurable-workflows

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/ecotone-dbal/health.svg)

```
[![Health](https://phpackages.com/badges/ecotone-dbal/health.svg)](https://phpackages.com/packages/ecotone-dbal)
```

###  Alternatives

[martin-georgiev/postgresql-for-doctrine

Extends Doctrine with native PostgreSQL support for arrays, JSONB, ranges, PostGIS geometries, text search, ltree, uuid, and 100+ PostgreSQL-specific functions.

4585.8M4](/packages/martin-georgiev-postgresql-for-doctrine)[flow-php/doctrine-dbal-bulk

Bulk inserts and updates for Doctrine DBAL

14385.8k4](/packages/flow-php-doctrine-dbal-bulk)[enqueue/dbal

Message Queue Doctrine DBAL Transport

246.4M9](/packages/enqueue-dbal)[jawira/db-draw

📐 Takes a DoctrineORM connection and generates a database diagram in .puml format

22113.6k3](/packages/jawira-db-draw)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
