Skip to content

Commit a868b6f

Browse files
author
FirstUnicorn
committed
docs(readme): reorder sections for better flow
## Starting point The "When to use this package" section appeared immediately after "Installation", before the comparison table, which interrupted the natural flow from requirements to alternatives comparison. ## Changes Moved "When to use this package" section in README.md: - From: lines 46-60 (after Installation section) - To: lines 71-84 (after Comparison with alternatives table) Also cleaned up minor whitespace: - Removed trailing spaces in setup example code - Removed trailing newline at end of file ## Result Documentation now flows more logically: 1. Installation 2. Comparison table (detailed feature breakdown) 3. When to use (guidance based on that comparison) 4. Scope The detailed comparison table now precedes the decision guidance, allowing readers to understand capabilities before making choices. Moved using safe-line-mover MCP for deterministic copy/paste.
1 parent c615102 commit a868b6f

1 file changed

Lines changed: 17 additions & 18 deletions

File tree

README.md

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,6 @@ from messaging.infrastructure import SqlAlchemyOutboxRepository
4343
- PostgreSQL (outbox persistence)
4444
- Kafka Connect with Debezium CDC (publishing infrastructure)
4545

46-
## When to use this package
47-
48-
**Use `python-eventing` if you need:**
49-
- Guaranteed event delivery via transactional outbox pattern
50-
- Kafka-based microservice messaging with CDC publishing
51-
- Dead letter queue handling with database bookkeeping
52-
- Idempotent consumer patterns with durable deduplication
53-
- Native broker integration (FastStream, Debezium CDC, RabbitMQ DLX)
54-
55-
**Consider alternatives if:**
56-
- Simple in-process events only → [`pyventus`](https://github.com/mdapena/pyventus)
57-
- FastAPI request-scoped events → [`fastapi-events`](https://github.com/melvinkcx/fastapi-events)
58-
- Non-Kafka message brokers without CDC support
59-
- No need for durable outbox persistence
60-
6146
Support scale: `` none, `` basic, `✅✅` strong, `✅✅✅` first-class
6247

6348
## Comparison with alternatives
@@ -83,6 +68,21 @@ Support scale: `❌` none, `✅` basic, `✅✅` strong, `✅✅✅` first-class
8368
| Consumer batch handling ||| ✅✅✅ | `fastapi-events` supports `handle_many(...)`; this package stays one-message-per-consume today |
8469
| FastAPI-local event flow ||| ✅✅✅ | This package intentionally avoids request-lifecycle middleware eventing |
8570

71+
## When to use this package
72+
73+
**Use `python-eventing` if you need:**
74+
- Guaranteed event delivery via transactional outbox pattern
75+
- Kafka-based microservice messaging with CDC publishing
76+
- Dead letter queue handling with database bookkeeping
77+
- Idempotent consumer patterns with durable deduplication
78+
- Native broker integration (FastStream, Debezium CDC, RabbitMQ DLX)
79+
80+
**Consider alternatives if:**
81+
- Simple in-process events only → [`pyventus`](https://github.com/mdapena/pyventus)
82+
- FastAPI request-scoped events → [`fastapi-events`](https://github.com/melvinkcx/fastapi-events)
83+
- Non-Kafka message brokers without CDC support
84+
- No need for durable outbox persistence
85+
8686
## Scope
8787

8888
**Included:**
@@ -455,11 +455,11 @@ app = FastAPI()
455455
async def startup():
456456
# Database engine
457457
engine = create_async_engine("postgresql+asyncpg://...")
458-
458+
459459
# Outbox repository
460460
outbox_repo = SqlAlchemyOutboxRepository(engine)
461461
app.state.outbox_repository = outbox_repo
462-
462+
463463
# Optional: EventBus for advanced patterns
464464
event_bus = build_event_bus()
465465
app.state.event_bus = event_bus
@@ -585,4 +585,3 @@ poetry run pytest
585585
- See `.github/workflows/README.md` for details
586586

587587
**For complete local test coverage on Windows:** See [Windows Testing with WSL2](docs/WINDOWS_TESTING_WITH_WSL2.md) (requires Docker Desktop WSL integration setup).
588-

0 commit comments

Comments
 (0)