Zettleinby Happy Sandboy
Menu

04 · System

Service topology, not a monolith.

Vue/Quasar clients on the edge, a .NET C# service mesh on AWS ECS/Fargate, Prisma-modeled Postgres for state, event-driven side effects. Cambodia region first, multi-region ready.

High level

Client → gateway → services → state.

   Clients                     Edge                     Services (.NET C#)                State
 ┌──────────────┐         ┌──────────────┐          ┌────────────────────────┐        ┌────────────┐
 │ Brokher.com  │ ──SSR──▶│              │          │ identity-svc            │        │            │
 │ (Vue/Nuxt)   │         │  CloudFront  │          │ property-svc            │        │            │
 ├──────────────┤         │      +       │──── HTTP─▶ media-svc               │──SQL──▶│  Postgres  │
 │ Proassistly  │         │  API Gateway │          │ ai-orchestrator-svc     │        │  (Prisma)  │
 │ (Vue/Quasar) │         │              │          │ crm-svc                 │        │  Aurora    │
 ├──────────────┤         │              │          │ contracts-svc           │        │            │
 │ Capture app  │◀── WSS ─┤              │          │ payments-svc            │        └────────────┘
 │ (Quasar/Cap.)│         └──────┬───────┘          │ marketplace-svc         │
 └──────────────┘                │                  │ partners-svc            │        ┌────────────┐
                                 │                  │ notifications-svc       │        │  S3 + CDN  │
   Zettlein widget ──────────────┘                  └────────┬───────────────┘        │ (media)    │
                                                             │ events                   └────────────┘
                                                             ▼
                                                     EventBridge / SQS
                                                             │
                                                             ▼
                                                   workers · projections

Services

Boundaries chosen by transaction phase.

svc/01

identity-svc

Auth · KYC · Tenants

Cognito-backed auth (email/phone/OAuth), KYC/AML flow, tenant model for multi-country expansion.

svc/02

property-svc

Properties · Listings

Property CRUD, ownership metadata, category-specific fields, listing lifecycle & moderation.

svc/03

media-svc

Capture pipeline

Ingest from capture app, CV processing, floor plan generation, image enhancement, virtual tours.

svc/04

ai-orchestrator-svc

Zettlein brain

Agent runs, tool routing, RAG queries, safety, model selection, cost & latency budgets.

svc/05

crm-svc

Pipelines · Comms

Leads, deals, tasks, SLAs; unified comms across email, SMS, Telegram, WhatsApp.

svc/06

contracts-svc

Legal engine

Template DSL, jurisdiction packs, doc assembly, e-sign integration, versioned artifacts.

svc/07

payments-svc

Escrow · Payouts

Double-entry ledger, escrow accounts, FX, adapter layer to banks & rails.

svc/08

marketplace-svc

Search · SEO

Read model for Brokher.com, OpenSearch indexing, structured data, i18n.

svc/09

partners-svc

Service marketplace

Provider onboarding, coverage, ratings, lead routing, revenue sharing.

Infra

AWS today, portable tomorrow.

Compute

ECS Fargate · Lambda

Stateless services on Fargate behind an internal ALB; async workers on Lambda + SQS. No EC2 pets.

Data

Aurora Postgres · S3

Aurora Postgres (Prisma) for OLTP, S3 for media, OpenSearch for listings, Redis (ElastiCache) for hot caches & Zettlein session memory.

Events

EventBridge · SQS

Domain events published on EventBridge; per-consumer SQS queues; DLQs first-class. Enables projections, notifications, AI actions.

Security

KMS · Secrets Manager

Customer data encrypted at rest with KMS keys per tenant; per-service IAM; VPC-private services; WAF at the edge.

Observability

OTel · CloudWatch

OpenTelemetry traces across services; structured logs; SLOs per phase (list, offer, contract, close).

Regions

ap-southeast-1 → global

Cambodia traffic served from Singapore region initially; per-country data residency added as jurisdictions come online.