Docs·ba2a6d13·Updated Jul 17, 2026·85 ADRs

Services

10 microservices compose the Karmyq platform.

Auth Service

:3001
criticalproduction

Foundation service - no dependencies on other services

17 APIs0 deps2 infra

Community Service

:3002
criticalproduction

Sprint 47: Group Communities — community_type field, activities + activity_participants tables, activities API endpoints, activity_joined event

43 APIs1 deps3 infra

Request Service

:3003
criticalproduction

Server-driven UI: Schema API provides dynamic form definitions. Admin API enables zero-code request type creation. Sprint 43: feed_events table logs impressions/outcomes for weight tuning (ADR-048).

51 APIs3 deps3 infra

Reputation Service

:3004
criticalproduction
22 APIs1 deps3 infra

Notification Service

:3005
importantproduction

Subscribes to all events, creates notifications

5 APIs1 deps3 infra

Messaging Service

:3006
criticalproduction
2 APIs2 deps2 infra

Cleanup Service

:3008
importantproduction

CANDIDATE FOR REPLACEMENT: Could be replaced with pg_cron scheduled jobs. Scheduled jobs: dibs expiry (5m), match reminders (15m), mark-expired (hourly), hard-delete (2am), reputation decay (3am), memoryRetentionJob (3:30am, Sprint 90/ADR-069 — anonymizes completed-exchange free-text to '[forgotten]' sentinels + cascade-forgets messages, hard-deletes expired/unmatched requests; karma_records left untouched; per-community retention windows via request_communities → retention_config), trust edge sweep (4:30am), activity log cleanup (weekly), decay report (weekly). Sprint 90 RETIRED requestTtlSweepJob (it hard-deleted completed+rated exchanges at 30d, destroying aggregates before the anonymize window — superseded by memoryRetentionJob). Governed by requests.retention_config.

1 APIs0 deps2 infra

Geocoding Service

:3009
optionalproduction

Sprint 109 / ADR-080: retained as shared PostgreSQL geocoding cache and external Nominatim policy boundary. Frontend consumes via apps/frontend/src/lib/geocoding.ts.

4 APIs0 deps1 infra

Social Graph Service

:3010
criticalproduction

Trust-first design foundation. Sprint 27: match_completed → social_graph.connections. Sprint 65: match_completed → social_graph.trust_edges. Sprint 67: ego-network rewrite — GET /trust/graph (aggregate) + GET /trust/graph/:communityId (community ego-network). Sprint 68: intrinsic Ebbinghaus decay via trust_edges_live view + decay config endpoints. Sprint 90: visible decay (ADR-070) — graph edges carry decayTier; new /trust/me/memory + /trust/relationships/fading endpoints; classifyDecayTier lives in @karmyq/shared. Governance endpoints are in community-service.

20 APIs2 deps2 infra

Simulation Service

:
optionaldevelopment

Development/demo tool only - not deployed to production. Sprint 117: owns the curated demo reset (deterministic protected-core baseline via a guarded transactional reset) plus the ambient synthetic population. Trust/karma history is fixture-only replay locked to production math; live match_completed behaviour is unchanged. Operator CLIs reset:demo/verify:demo/rotate:demo-stories are dry-run/read-only by default.

0 APIs1 deps0 infra