docs(architecture): replace NATS JetStream with RabbitMQ for job dispatch

Switch the durable ingestion/maintenance job-dispatch broker decision from
NATS JetStream to RabbitMQ (aio-pika), rewriting ADR-0014 and propagating
the terminology change through ADR-0015, ADR-0016, and the ingestion
vertical-slice plan. Adds aio-pika as a runtime dependency.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-15 11:25:25 +03:30
parent 0ca698acfa
commit 88b2db0c3d
6 changed files with 2250 additions and 241 deletions

View File

@@ -5,14 +5,41 @@ description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"aio-pika>=9.5.0",
"alembic>=1.19.1",
"fastapi[standard]==0.141.1",
"pydantic-settings>=2.14.2",
"langgraph>=1.2.10",
"pydantic-settings>=2.15.0",
"sqlalchemy>=2.0.51",
]
[dependency-groups]
dev = [
"ruff>=0.16.1",
"ty>=0.0.65",
"asgi-lifespan>=2.1.0",
"httpx>=0.28.1",
"pytest>=8.3.5",
"pytest-asyncio>=0.25.3",
"pytest-cov>=6.0.0",
"pytest-timeout>=2.3.1",
"ruff>=0.16.2",
"testcontainers>=4.9.2",
"ty>=0.0.69",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "strict"
timeout = 10
markers = [
"unit: fast tests with no external services",
"integration: tests against a real disposable service",
"e2e: end-to-end vertical-slice tests",
"postgres: integration test using Postgres",
"minio: integration test using MinIO",
"rabbitmq: integration test using RabbitMQ",
"qdrant: integration test using Qdrant",
"slow: test exceeds normal integration feedback time",
"live_provider: opt-in test that calls an external provider",
]
[tool.ruff]
@@ -45,3 +72,17 @@ indent-style = "space"
[tool.ty.environment]
python-version = "3.13"
[tool.ty.rules]
# High-value, currently ignore/warn by
possibly-unresolved-reference = "error"
missing-type-argument = "warn"
possibly-missing-attribute = "warn"
# Nice-to-have discipline:
unused-ignore-comment = "warn"
missing-override-decorator = "warn"
# Turn OFF or downgrade if noisy on your codebase:
possibly-missing-import = "ignore"
division-by-zero = "ignore"