On-demand Scout service (replaces the nightly aggregator): - FastAPI agent-mesh service; card name "matchmaking-service" (HTTP /a2a/tasks + Redis-stream worker matching the sibling-service pattern) - run_search: parallel multi-board sweep (Naukri/blackfalcondata + Foundit + LinkedIn), city-filtered at the board, cheapest-per-result first - per-board adapters + normalizers -> ScoutJob with rich read-only details and offsite apply links; recall mode + MVQ guard - result cache for dev replay ($0); per-board cost knobs; retry-on-5xx - research/: engine design, board cost economics, India-actor shortlist, POC
2.7 KiB
Old Matchmaking — Decommission & Slot-In Plan
How
matchmaking-v2(Scout) replaces the deadmatchmakingservice. Companion toENGINE_DESIGN.md. Status (2026-06-16): planned, local teardown not yet executed.
Current state (verified live 2026-06-16)
The old matchmaking runs identically in both local (growqr-demo) and prod (EC2):
| Component | Local | Prod (EC2 3.109.159.139) |
|---|---|---|
matchmaking-api |
:8006 → 8000, up |
:8006 → 8000, up 4d |
matchmaking-worker |
up | up 4d |
matchmaking-ingestion-worker |
up | up 4d |
matchmaking-postgres (own DB, NOT RDS) |
:5439, vol matchmaking-pgdata |
:5439, vol matchmaking-pgdata |
Containers are running but the service is functionally dead (ingestion chain broke 2026-05-27;
986,770 stale score rows for 21 users). :8011 is free in both. AWS reachable: CLI as
iam::189924572890:user/rahul; SSH ec2-user@3.109.159.139 (key ~/.ssh/growqr-key.pem).
Locked decisions
- Reuse port
:8006(the old matchmaking's slot) — NOT a new:8011. This overridesENGINE_DESIGN.md§1's "12th agent on :8011". Rationale: in-place swap — v2 inherits the existingapi.growqr.ai/matchmaking/*nginx route + the frontend's existing matchmaking wiring, so the Scout UI works with minimal rewiring. - Drop the old corpus DB. v2 is on-demand, no corpus (
ENGINE_DESIGN.md§1) — somatchmaking-postgres+ itsmatchmaking-pgdatavolume are discarded. The data is stale/worthless (design doc verdict). Irreversible — confirm before deleting the volume. - WS-agent via orchestrator. v2 reuses
:8006, registers in orchestratorAGENT_URLS, and the frontend reaches it throughuseAgentSession(WS) — matching the mesh pattern (like course-service:8010). The old/matchmaking/*nginx HTTP route stays vestigial or is removed later.
Sequence
A. Local — immediate (on go-ahead):
docker compose stop+rmthe 4 matchmaking containers (api, worker, ingestion-worker, postgres).- Drop the
matchmaking-pgdatavolume (decision #2). Frees:8006+:5439for v2 dev. - Comment/remove the matchmaking services from the local compose; v2 takes
:8006.
B. Prod — later (after v2 validated):
- Stop the 4 prod matchmaking containers; remove from
docker-compose.prod.yml. - Deploy v2 on
:8006; add to orchestratorAGENT_URLS; keep/retire the nginx/matchmaking/*route. - Periodic
docker builder/image prune(per aws-deployment.md) after the swap.
Rollback
Local teardown is reversible except the dropped volume. Keep the old matchmaking repo + compose
definition until v2 is validated in prod, so prod can be restored by re-adding the service block.