You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,16 @@ class NotificationService
37
37
38
38
Every flow — sync, async, sagas, projections — runs through the same messaging pipeline in production and in tests. Swap the in-memory channel for RabbitMQ, Kafka, SQS, Redis, or DBAL in production; the test shape never changes.
39
39
40
-
Visit [ecotone.tech](https://ecotone.tech) to learn more.
40
+
## Topic deep dives
41
+
42
+
-[Durable Workflows in PHP](https://ecotone.tech/durable-workflows) — long-running processes, sagas, orchestrators, event-sourced replay on your existing DB + broker
-[Asynchronous Communication](https://ecotone.tech/asynchronous-communication) — message channels, retries, outbox, delayed messages, scheduling, dead letter with replay
45
+
-[Domain-Driven Design in PHP](https://ecotone.tech/domain-driven-design) — aggregates, repositories, domain events, sagas — all via attributes
-[Microservices](https://ecotone.tech/microservices) — Distributed Bus, Service Map, multi-broker single topology
48
+
49
+
Visit [ecotone.tech](https://ecotone.tech) for the full overview.
41
50
42
51
> 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).
Copy file name to clipboardExpand all lines: packages/Amqp/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ From `#[CommandHandler]` on day one, to event sourcing, sagas, outbox, and distr
17
17
18
18
## AMQP / RabbitMQ transport
19
19
20
-
Route `#[Asynchronous]` handlers to RabbitMQ. Exchanges, queues, and bindings are declared from your PHP configuration, and every message flows through Ecotone's standard retry, outbox, and dead letter pipeline — so switching to AMQP in production never changes how your handlers or tests are written.
20
+
Route `#[Asynchronous]` handlers to RabbitMQ. Exchanges, queues, and bindings are declared from your PHP configuration, and every message flows through Ecotone's standard [retry, outbox, and dead letter pipeline](https://docs.ecotone.tech/solutions/unreliable-async-processing) — so switching to AMQP in production never changes how your handlers or tests are written. Carries [asynchronous communication](https://ecotone.tech/asynchronous-communication), [durable workflow](https://ecotone.tech/durable-workflows) execution, and [cross-service distribution](https://ecotone.tech/microservices) on the same broker.
Copy file name to clipboardExpand all lines: packages/DataProtection/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ From `#[CommandHandler]` on day one, to event sourcing, sagas, outbox, and distr
17
17
18
18
## Data Protection
19
19
20
-
Attribute-driven encryption and PII masking for Ecotone messages. Mark sensitive fields on commands, events, or queries and Ecotone handles protection transparently — in message channels, event stores, dead letter queues, and traces — without changing your handler code.
20
+
Attribute-driven encryption and PII masking for Ecotone messages. Mark sensitive fields on commands, events, or queries and Ecotone handles protection transparently — in [message channels](https://ecotone.tech/asynchronous-communication), [event stores](https://ecotone.tech/event-sourcing), dead letter queues, and traces — without changing your handler code. See the [Data Protection module docs](https://docs.ecotone.tech/modules/data-protection) for setup and key management.
21
21
22
22
-**Field-level encryption** — sensitive fields encrypted in transit and at rest
23
23
-**PII masking** — configurable masking for logs and traces
Copy file name to clipboardExpand all lines: packages/Dbal/README.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,11 +17,12 @@ From `#[CommandHandler]` on day one, to event sourcing, sagas, outbox, and distr
17
17
18
18
## Doctrine DBAL integration
19
19
20
-
Database-backed foundation for Ecotone, built on Doctrine DBAL. Use your existing relational database as a message transport, outbox, or dead letter store — no extra infrastructure required to get started.
20
+
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.
21
21
22
-
-**DBAL message channel** — durable asynchronous channel backed by your database
23
-
-**Outbox pattern** — atomic commit of business state and outbound messages, so no event is lost on crash
22
+
-**DBAL message channel** — durable [asynchronous channel](https://ecotone.tech/asynchronous-communication) backed by your database
23
+
-**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))
24
24
-**Dead Letter Queue** — failed messages persisted to your database, inspectable and replayable
25
+
-**Saga state storage** — non-event-sourced sagas persist their state per `#[Identifier]` in your DB
25
26
-**Document Store** — aggregates persisted as JSON documents, no ORM required
26
27
-**Business Interfaces** — declarative DBAL query methods via `#[DbalBusinessMethod]`
27
28
-**Transactional message handling** — each handler wrapped in a DB transaction automatically
Copy file name to clipboardExpand all lines: packages/Dbal/composer.json
+9-2Lines changed: 9 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -17,9 +17,16 @@
17
17
],
18
18
"keywords": [
19
19
"dbal",
20
-
"ecotone"
20
+
"doctrine",
21
+
"ecotone",
22
+
"outbox",
23
+
"dead-letter-queue",
24
+
"messaging",
25
+
"saga",
26
+
"durable-workflows",
27
+
"document-store"
21
28
],
22
-
"description": "Doctrine DBAL integration for Ecotone \u2014 database-backed message channel, outbox pattern, dead letter queue, and document store.",
29
+
"description": "Doctrine DBAL integration for Ecotone \u2014 database-backed message channel, outbox pattern, dead letter queue, durable saga state storage, and document store.",
|**Domain modelling**| Aggregates, Sagas, state-stored or event-sourced — all via attributes |[ecotone.tech/domain-driven-design](https://ecotone.tech/domain-driven-design)|
|**Durable Workflows**| Stateless workflows, sagas, orchestrators (routing slip), event-sourced sagas with full replay — long-running processes that survive crashes, deploys, and restarts on the DB + broker you already run |[ecotone.tech/durable-workflows](https://ecotone.tech/durable-workflows)|
|**Resiliency**| Retries, error channels, dead letter queue with replay, Outbox pattern, deduplication |[docs](https://docs.ecotone.tech/solutions/unreliable-async-processing)|
|**Observability**| OpenTelemetry tracing, Service Map (Enterprise) |[docs](https://docs.ecotone.tech/modules/opentelemetry-tracing-and-metrics)|
115
+
|**Multi-tenancy**| Per-tenant connections, event stores, and async channels |[docs](https://docs.ecotone.tech/messaging/multi-tenancy-support)|
116
+
|**Distribution**| Distributed Bus for cross-service events and commands |[ecotone.tech/microservices](https://ecotone.tech/microservices)|
117
+
|**Data protection**| Field-level encryption and PII masking for messages |[docs](https://docs.ecotone.tech/modules/data-protection)|
118
+
|**Testing**|`EcotoneLite::bootstrapFlowTesting` — full flows in-process, no broker required |[docs](https://docs.ecotone.tech/modelling/testing-support)|
116
119
117
120
---
118
121
@@ -181,4 +184,4 @@ If you want to help building and improving Ecotone consider becoming a sponsor:
0 commit comments