Olly — Platform Architecture

Top-down data flow • observability cross-cuts all layers • external systems connect inward

Clients
User-facing applications
Member Portal React • Keycloak ROPC
Employer Portal React • Keycloak PKCE
Admin Console Next.js • react-admin
Mobile App Expo • iOS + Android
Triage Chat React • streaming
Broker Portal Web app
HTTPS • JWT Bearer
Edge / Gateway
TLS termination, auth, routing
Nginx *.dev.hiolly.com • TLS • 17 vhosts
Apache APISIX :9080 11 routes • CORS • x-market
Keycloak :8093 OIDC • realm: olly • JWKS
HTTP • prefix-stripped • auth forwarded
Application Services
14 Go microservices • chi • GORM • OTel
Insurance Core
depends on enrollment + eligibility
billing :4004 → enrollment, claims, policy-admin Invoices, payments, EOB, ledger
claims :4001 → eligibility, enrollment, policy-admin Adjudication, prior-auth
depends on policy-admin
enrollment :4003 → policy-admin, group-scheme Quotes, policies
eligibility :4002 → enrollment (bootstrap) Coverage, eligibility checks
foundation — no internal deps
policy-admin :4007 leaf service Parties, accounts, products
Member & Group
BFF — aggregates downstream
member-portal-api :4014 → 6 services /me/* aggregation
orchestrate core services
group-scheme :4010 → enrollment, billing, eligibility Schemes, bulk enroll
broker-api :4011 → enrollment, policy-admin Portfolio, commissions
event-driven / standalone
notifications :4006 Kafka consumer Email, push, SMS
consent :4012 standalone Consent mgmt
Provider & Care
depends on provider / events
care :4009 → provider Care pathways
document-service :4013 Kafka consumer Doc generation
foundation / external-only
provider :4005 → policy-admin Network, credentialing
triage :4008 → external LLM AI symptom triage
Shared: olly/domain olly/db olly/middleware olly/ruleengine
Outbox → Kafka • async events
Kafka
enrollment-events claims.* billing.* eligibility.* care-events document-events consent.* KRaft • outbox • sagas
GORM • Goose migrations
Data Stores
Persistence layer
PostgreSQL 16 :5432 1 schema/service • Goose
Valkey :16379 Cache • sessions • rate limits
OpenSearch :9200 Provider dir • ICD-10 • audit
Temporal :7233 Workflows • credentialing • dunning
OpenBao :8200 Secrets • dynamic credentials