feat: add NATS + Dapr infrastructure for event-driven architecture

- infra/compose/nats.yml: NATS server with JetStream, persistence volume, healthcheck
- infra/compose/dapr.yml: Dapr placement service for sidecar coordination
- infra/dapr/: Dapr global config, pubsub component (NATS), statestore (Redis)
- infra/compose/scraper.yml: add Dapr sidecar container + depends_on nats/dapr
- docs/add-dapr-service.md: guide for integrating Dapr into new services
- docs/add-new-app.md: add Dapr sidecar step
- ARCHITECTURE.md: add NATS/Dapr to infra table + service mesh diagram
- infra/README.md: update layout and deployment order
- deploy-docker.yml: add nats.yml + dapr.yml to ALL_COMPOSE_FILES

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
asepharyanaandClaude Opus 4.8 committed 2026-07-21 17:26:02 +07:00
1 parent d546a1acf9
commit ea168b4b20
13 files changed
+370 -16

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
services:
dapr-placement:
container_name: dapr-placement
image: daprio/dapr:latest
restart: always
networks:
- app-shared-net
command: ["./placement", "--port", "50005"]
healthcheck:
test: ['CMD-SHELL', 'wget --spider http://localhost:50005/healthz || exit 1']
interval: 15s
timeout: 5s
retries: 3
start_period: 10s
networks:
app-shared-net:
name: app-shared-net
external: true