Skip to content

Commit 62ab2db

Browse files
authored
Feat/update desc (#668)
feat: update docs
1 parent ce076fa commit 62ab2db

31 files changed

Lines changed: 163 additions & 155 deletions

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,16 @@ class NotificationService
3737

3838
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.
3939

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
43+
- [Event Sourcing in PHP](https://ecotone.tech/event-sourcing) — built-in event store, projections (catch-up, partitioned, streaming), blue-green rebuilds, PII encryption end-to-end
44+
- [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
46+
- [Orchestration Layer](https://ecotone.tech/orchestration-layer) — declarative multi-step workflows, EIP routing, dynamic step lists
47+
- [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.
4150

4251
> 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).
4352

composer.json

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,19 @@
1515
"keywords": [
1616
"ddd",
1717
"cqrs",
18-
"EventSourcing",
18+
"event-sourcing",
19+
"sagas",
20+
"durable-workflows",
21+
"durable-execution",
22+
"workflow",
23+
"outbox",
24+
"projections",
1925
"ecotone",
20-
"service-bus"
26+
"service-bus",
27+
"message-driven",
28+
"event-driven"
2129
],
22-
"description": "Enterprise architecture layer for Laravel and Symfony — CQRS, Event Sourcing, Sagas, Projections, Workflows, and Outbox messaging via PHP attributes.",
30+
"description": "Enterprise architecture layer for Laravel and Symfony — CQRS, Event Sourcing, Durable Workflows (Sagas, Orchestrators), Projections, and Outbox messaging via PHP attributes.",
2331
"repositories": [
2432
{
2533
"type": "path",

packages/Amqp/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ From `#[CommandHandler]` on day one, to event sourcing, sagas, outbox, and distr
1717

1818
## AMQP / RabbitMQ transport
1919

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.
2121

2222
Supports both implementations:
2323

packages/Amqp/composer.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,13 @@
2020
"rabbitmq",
2121
"rabbit",
2222
"messaging",
23-
"asynchronous",
24-
"message",
25-
"enterprise integration patterns",
23+
"async-messaging",
24+
"message-broker",
2625
"eip",
27-
"distributed architecture",
28-
"domain driven design"
26+
"ecotone",
27+
"outbox",
28+
"durable-workflows",
29+
"saga"
2930
],
3031
"description": "AMQP / RabbitMQ transport for Ecotone asynchronous messaging, outbox, and dead letter.",
3132
"repositories": [

packages/DataProtection/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ From `#[CommandHandler]` on day one, to event sourcing, sagas, outbox, and distr
1717

1818
## Data Protection
1919

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.
2121

2222
- **Field-level encryption** — sensitive fields encrypted in transit and at rest
2323
- **PII masking** — configurable masking for logs and traces

packages/DataProtection/composer.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,14 @@
1717
],
1818
"keywords": [
1919
"ecotone",
20-
"Encryption",
21-
"OpenSSL",
22-
"Sensitive Data Protection",
23-
"Secure Messages"
20+
"encryption",
21+
"pii",
22+
"gdpr",
23+
"data-protection",
24+
"crypto-shredding",
25+
"openssl",
26+
"sensitive-data",
27+
"secure-messages"
2428
],
2529
"description": "Field-level encryption and PII masking for Ecotone messages \u2014 GDPR-friendly data protection with crypto-shredding.",
2630
"repositories": [

packages/Dbal/README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ From `#[CommandHandler]` on day one, to event sourcing, sagas, outbox, and distr
1717

1818
## Doctrine DBAL integration
1919

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.
2121

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))
2424
- **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
2526
- **Document Store** — aggregates persisted as JSON documents, no ORM required
2627
- **Business Interfaces** — declarative DBAL query methods via `#[DbalBusinessMethod]`
2728
- **Transactional message handling** — each handler wrapped in a DB transaction automatically

packages/Dbal/composer.json

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,16 @@
1717
],
1818
"keywords": [
1919
"dbal",
20-
"ecotone"
20+
"doctrine",
21+
"ecotone",
22+
"outbox",
23+
"dead-letter-queue",
24+
"messaging",
25+
"saga",
26+
"durable-workflows",
27+
"document-store"
2128
],
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.",
2330
"repositories": [
2431
{
2532
"type": "path",

packages/Ecotone/README.md

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,20 @@ Swap the in-memory channel for DBAL, RabbitMQ, or Kafka in production — the te
102102

103103
## What's in the box
104104

105-
| Area | What you get |
106-
|---|---|
107-
| **Messaging** | Command / Query / Event buses, routing, interceptors, business interfaces (gateways) |
108-
| **Domain modelling** | Aggregates, Sagas, state-stored or event-sourced — all via attributes |
109-
| **Event Sourcing** | Event Store, Projections (catch-up, partitioned, streaming), event versioning and upcasting, DCB |
110-
| **Workflows** | Stateless workflows, orchestrators (routing slip), saga-based process managers |
111-
| **Async & resiliency** | `#[Asynchronous]`, retries, error channels, dead letter queue with replay, Outbox pattern |
112-
| **Observability** | OpenTelemetry tracing, Service Map (Enterprise) |
113-
| **Multi-tenancy** | Per-tenant connections, event stores, and async channels |
114-
| **Distribution** | Distributed Bus for cross-service events and commands |
115-
| **Data protection** | Field-level encryption and PII masking for messages |
105+
| Area | What you get | Deep dive |
106+
|---|---|---|
107+
| **Messaging** | Command / Query / Event buses, routing, interceptors, business interfaces (gateways) | [docs](https://docs.ecotone.tech/modelling/command-handling) |
108+
| **Domain modelling** | Aggregates, Sagas, state-stored or event-sourced — all via attributes | [ecotone.tech/domain-driven-design](https://ecotone.tech/domain-driven-design) |
109+
| **Event Sourcing** | Event Store, Projections (catch-up, partitioned, streaming), event versioning and upcasting, snapshots | [ecotone.tech/event-sourcing](https://ecotone.tech/event-sourcing) |
110+
| **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) |
111+
| **Asynchronous communication** | `#[Asynchronous]`, message channels, delayed messages, scheduling, priority, TTL, dynamic channels | [ecotone.tech/asynchronous-communication](https://ecotone.tech/asynchronous-communication) |
112+
| **Resiliency** | Retries, error channels, dead letter queue with replay, Outbox pattern, deduplication | [docs](https://docs.ecotone.tech/solutions/unreliable-async-processing) |
113+
| **Orchestration** | EIP routing, splitters, filters, transformers, multi-step orchestrators (Enterprise) | [ecotone.tech/orchestration-layer](https://ecotone.tech/orchestration-layer) |
114+
| **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) |
116119

117120
---
118121

@@ -181,4 +184,4 @@ If you want to help building and improving Ecotone consider becoming a sponsor:
181184

182185
## Tags
183186

184-
PHP, DDD, CQRS, Event Sourcing, Sagas, Projections, Workflows, Outbox, Symfony, Laravel, Service Bus, Event Driven Architecture
187+
PHP, DDD, CQRS, Event Sourcing, Sagas, Projections, Durable Workflows, Durable Execution, Workflows, Orchestrator, Outbox, Symfony, Laravel, Service Bus, Event Driven Architecture

packages/Ecotone/composer.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,19 @@
1818
"keywords": [
1919
"ddd",
2020
"cqrs",
21-
"EventSourcing",
21+
"event-sourcing",
22+
"sagas",
23+
"durable-workflows",
24+
"durable-execution",
25+
"workflow",
26+
"outbox",
27+
"projections",
2228
"ecotone",
2329
"service-bus",
2430
"message-driven",
25-
"event",
2631
"event-driven"
2732
],
28-
"description": "Enterprise architecture layer for Laravel and Symfony \u2014 CQRS, Event Sourcing, Sagas, Projections, Workflows, and Outbox messaging via PHP attributes.",
33+
"description": "Enterprise architecture layer for Laravel and Symfony \u2014 CQRS, Event Sourcing, Durable Workflows (Sagas, Orchestrators), Projections, and Outbox messaging via PHP attributes.",
2934
"repositories": [
3035
{
3136
"type": "path",

0 commit comments

Comments
 (0)