説明なし

Luis Rosales a29c2d8de3 M2(1/3): migrations 003 + seed_m2 + seed runner picks both seeds 2 ヶ月 前
cmd a29c2d8de3 M2(1/3): migrations 003 + seed_m2 + seed runner picks both seeds 2 ヶ月 前
deploy d76aa0b08d chore: shift app HTTP ports 8080-8083 to 8800-8803 (project rule) 2 ヶ月 前
internal 80e26c4d12 M1(4-5/8): routerd M1 broadcast + deliverd M1 fcm 2 ヶ月 前
loadgen d76aa0b08d chore: shift app HTTP ports 8080-8083 to 8800-8803 (project rule) 2 ヶ月 前
migrations a29c2d8de3 M2(1/3): migrations 003 + seed_m2 + seed runner picks both seeds 2 ヶ月 前
testfakes 0d668d69b2 M1(3/8): testfakes/fakefcmd 2 ヶ月 前
.env.example d76aa0b08d chore: shift app HTTP ports 8080-8083 to 8800-8803 (project rule) 2 ヶ月 前
.gitignore 264d284a4b M1(1-2/8): migrations + seed + cmd/seed runner 2 ヶ月 前
ARCHITECTURE.md 8ca86628a1 feat(spec): add gRPC bidi-streaming as fourth ingest protocol (M11) 2 ヶ月 前
Dockerfile af90a2cb4d M1(verified): live smoke test all 9 steps green + 6 compose/Dockerfile fixes 2 ヶ月 前
M0_VERIFICATION.md d76aa0b08d chore: shift app HTTP ports 8080-8083 to 8800-8803 (project rule) 2 ヶ月 前
M1_SMOKE_LOG.md af90a2cb4d M1(verified): live smoke test all 9 steps green + 6 compose/Dockerfile fixes 2 ヶ月 前
M1_VERIFICATION.md d5a211622a M1(8/8): M1 verification doc + SPEC update + PROMPT log 2 ヶ月 前
PROMPT.md d5a211622a M1(8/8): M1 verification doc + SPEC update + PROMPT log 2 ヶ月 前
README.md cb5f73aaf6 M1(verified): bump SPEC §23 + README to 'shipped' (live smoke passed) 2 ヶ月 前
SPEC.md cb5f73aaf6 M1(verified): bump SPEC §23 + README to 'shipped' (live smoke passed) 2 ヶ月 前
docker-compose.yml af90a2cb4d M1(verified): live smoke test all 9 steps green + 6 compose/Dockerfile fixes 2 ヶ月 前
go.mod 264d284a4b M1(1-2/8): migrations + seed + cmd/seed runner 2 ヶ月 前
go.sum 264d284a4b M1(1-2/8): migrations + seed + cmd/seed runner 2 ヶ月 前

README.md

broad-announce

Multi-tenant notification router. Receives alerts from many source systems (HTTP/JSON webhooks, WebSockets, MQTT, gRPC bidi-streaming), normalizes them, resolves recipients via companiesgroupsindividuals + subscriptions, and delivers to FCM (Android), Telegram, SMS, email, voice, Slack, MS Teams, and arbitrary outbound webhooks.

Status: M0 + M1 shipped 2026-06-13. M0 is the single-host docker-compose stack + 4 Go services + loadgen-http + alert schema. M1 is the end-to-end: signed webhook → broker → router → deliverd → fakefcmd (live-verified, 1530 deliveries in the loadgen burst, 0 failures). See M0_VERIFICATION.md, M1_VERIFICATION.md, and M1_SMOKE_LOG.md for the smoke tests. Spec is in SPEC.md, diagrams in ARCHITECTURE.md, build log in PROMPT.md.

v1 in one paragraph

Four Go services (ingestd, routerd, deliverd, admind) wired together by NATS JetStream. Postgres + Timescale for live data, ClickHouse for archive, Redis for dedupe + rate limits, EMQX for MQTT. Strict app-level multi-tenant isolation. ~5k alerts/sec on Docker Compose, 50k/sec design ceiling for v2 K8s.

Repo layout

SPEC.md             — requirements, entities, severity, retention
ARCHITECTURE.md     — diagrams, sequences, SLOs, capacity model
PROMPT.md           — build log, decisions, open questions
M0_VERIFICATION.md  — M0 smoke test (signed webhook → 202)
docker-compose.yml  — single-host M0 stack
Dockerfile          — multi-stage build for all 5 binaries
.env.example        — every BA_* knob documented
cmd/ingestd/        — HTTP POST handler (M0), other transports in M4/M5/M11
cmd/routerd/        — scaffold (M2)
cmd/deliverd/       — scaffold (M3+)
cmd/admind/         — scaffold + /v1/ping (M8)
loadgen/cmd/http/   — traffic generator (M0)
internal/alert/     — Alert v1 type + Validate()
internal/broker/    — NATS JetStream wrapper
internal/config/    — env-driven config
internal/dedupe/    — 60s SET NX EX + INCR
internal/ratelimit/ — per-second INCR bucket
internal/httpserver/ — /health + /metrics scaffold
internal/observability/ — slog + Prometheus
internal/store/     — Redis + (later) Postgres
deploy/prometheus/  — prometheus.yml
migrations/         — (coming, M2)
testfakes/          — (coming, M3) fake-FCM, fake-Telegram, fake-SMS

License

Private. © 2026 Techno-World.