A command-driven property management platform built as a TypeScript monorepo. All write traffic flows through a central Command Center into Kafka; domain services consume commands asynchronously. Read traffic stays HTTP-based via the API Gateway.
Client → API Gateway (:8080) → Command Center → Kafka → Domain Services
→ Proxy reads to domain services
| Package | Status |
|---|---|
| Schemas | |
| Command Center Shared | |
| Candidate Pipeline | |
| Fastify Server | |
| Outbox | |
| OpenAPI Utils | |
| Command Consumer Utils | |
| Config | |
| Telemetry | |
| Tenant Auth |
# Install dependencies
npm install
# Start infrastructure
docker compose up -d postgres redis kafka
# Bootstrap Kafka topics
npm run kafka:topics
# Start all services
npm run devnpm run build # Lint + Biome + Knip + compile all packages
npm run lint # ESLint across all packages
npm run biome # Biome check across all packages
npm run knip # Dead code detection across all packages
npm run test # Run all test suites
npm run clean:all # Remove all build artifacts| Port | Service |
|---|---|
| 8080 | API Gateway |
| 3000 | Core Service |
| 3005 | Settings Service |
| 3010 | Guests Service |
| 3015 | Rooms Service |
| 3020 | Reservations Command Service |
| 3025 | Billing Service |
| 3030 | Housekeeping Service |
| 3035 | Command Center Service |
| 3040 | Recommendation Service |
| 3045 | Availability Guard Service |
| 3050 | Roll Service |
UNLICENSED — Proprietary