- wallet-service: IPaymentGateway abstraction + VN Pay implementation (HMAC-SHA512, sandbox), Payment aggregate root, PaymentsController with create/callback/query endpoints - order-service: PosHub SignalR hub with Redis backplane + MessagePack, strongly-typed clients, 3 group types (shop/kds/pos), integrated into Create/Pay/Complete/Cancel order handlers - fnb-engine + inventory-service: Kitchen→Inventory auto-deduction via domain events, HTTP with Polly retry + circuit breaker, idempotency check, graceful degradation on insufficient stock - order-service: Enhanced PayOrderCommand with 3 flows (cash/card/online), PaymentPending status, WalletServiceClient, CompleteOrderPaymentCommand for gateway callbacks - POS frontend: Cash/Card/QR payment components wired to real backend, BFF proxy updated - infra: Traefik routes for fnb-engine, inventory-service, and SignalR WebSocket hub - ROADMAP.md: Updated with Phase 1 progress tracking Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Traefik Configuration
Traefik reverse proxy and load balancer configuration.
Files
traefik.yml- Static configurationdynamic/routes.yml- HTTP routing rulesdynamic/middlewares.yml- Middleware definitions (CORS, rate limiting, security headers)
Usage
Traefik will automatically discover services via Docker labels or file-based configuration.
Routes
/api/v1/auth/*-> Auth Service/api/v1/users/*-> Auth Service
Middlewares
secure-headers- Security headerscors- CORS configurationauth-ratelimit- Rate limiting for auth endpointscompress- Response compression