Vacancy Dependency Edge Map
Purpose
This map traces the real dependency edges around the current Vacancy backend. It separates:
- acceptable shared Kvary shell dependencies
- move-first vacancy-owned dependencies
- temporary compatibility edges
- unresolved public-read debt
Dependency Edges
| Source | Target | Dependency type | Verdict | Notes |
| --- | --- | --- | --- | --- |
| registerVacancyRoutes.ts | VacancyReadRepository | preferred read dependency | should move into Vacancy later | This is already the preferred route-time read path. |
| registerVacancyRoutes.ts | VacancyCommandHandlers | command/write dependency | should move into Vacancy later | Core mutation dependency for postings and applications. |
| registerVacancyRoutes.ts | VacancyRouteSupport | route-support dependency | should move into Vacancy later | Support contract is already vacancy-owned. |
| builder | | auth ingress dependency | can remain shared after extraction | Shared shell auth ingress is expected to stay shared initially. |
| builder | | auth/principal dependency | can remain shared after extraction | Depends on shared auth/identity resolution behind . |
| builder | | shell parser dependency | can be wrapped later | Small shell helper; not a blocker. |
| | Postgres pool | persistence dependency | should move into Vacancy later | Core domain write dependency. |
| | | domain projection dependency | should move into Vacancy later | Projection upkeep is domain-owned. |
| | service outbox table via | event/runtime dependency | should stay temporary for now | Uses shared outbox runtime pattern in current host. |
| | , | primary write-model read dependency | should move into Vacancy later | Owner/application reads already rely on vacancy-owned tables. |
| | , , , | projection/read-model dependency | should move into Vacancy later | These are real vacancy projections. |
| | legacy table | compatibility public-read dependency | unresolved | Main blocker for clean public discovery extraction. |
| | | compatibility wrapper dependency | should stay temporary for now | Exists only for old root repository callers. |
| | | compatibility wrapper dependency | should stay temporary for now | Same pattern for application reads. |
| | vacancy compatibility wrappers | mixed root repository dependency | should stay temporary for now | Legacy hosting only; not the preferred runtime path anymore. |
| | , , | shell composition dependency | should stay temporary for now | Normal while vacancy still lives inside . |
| API vacancy routers | | gateway service-target seam | can remain shared after extraction | This is already the intended shared seam. |
| API vacancy routers | forwarded bearer token / | gateway auth/request propagation | can remain shared after extraction | Shared gateway contract, not vacancy-local ownership. |
| Web vacancy functions | API vacancy routes | client/service dependency | should become API/service contract | Good extraction boundary if DTO drift is controlled. |
| Web vacancy functions | fallback | UI compatibility dependency | should stay temporary for now | Explicitly non-canonical fallback. |
| Web / | richer catalog/detail types | UI-only contract dependency | unresolved | Real duplication and enrichment beyond backend DTOs. |
| Accommodation detail UI | vacancy list API results for nearby previews | cross-domain UI dependency | should stay temporary for now | Present in UI, but not a backend vacancy extraction edge. |
| Map vacancy layer | mock vacancy data | UI-only dependency | should be removed before extraction claims | Not backend truth at all. |