Back to projects

S

O

F

T

W

A

R

E

A

R

C

H

I

T

E

C

T

U

R

E

The Duck Dose · Engineering Overview  ·  demo with mocked data

All systems mock-operational
Overview

How The Duck Dose ships software.

A modern, event-driven platform built on React, Next.js, NestJS, and Bun — deployed to Kubernetes on AWS, streamed through Kafka, and observed end-to-end with Grafana, Loki, Kibana, and Zipkin. Below is the same platform viewed through four different lenses.

Tech Stack

33 tools the engineering team relies on every day.

Frontend

User-facing experiences across web and mobile
React
Next.js
Tailwind
Flutter

Backend & Runtime

Service runtimes and API frameworks
NestJS
Bun

Data & Streaming

Stores, caches, and change-data-capture
MySQL
MongoDB
Redis
Kafka
Debezium

Cloud & Infrastructure

Where the platform lives and how traffic flows
AWS
AWS EKS
AWS RDS
AWS S3
Cloudflare
Kubernetes
Istio

Observability

Metrics, logs, and traces across the platform
Grafana
Loki
Kibana
Zipkin
Fluent Bit

CI/CD & Quality

How code flows from commit to production
GitHub
GitHub Actions
SonarQube
K6
Playwright

AI & Design

Augmented design, code, and content workflows
Claude
Gemini
OpenAI
Figma
Loveable

Layered Architecture

Client → BFF → Service → Database — the four canonical tiers, end to end.

Client
Web & mobile experiences
Web · React
Web · Next.js
Mobile · Flutter
BFF
Backend-for-frontend aggregation
Web BFF · Next.js
Mobile BFF · NestJS
Service
Domain microservices
auth-service
catalog-service
order-service
payment-service
Database
Persistence & cache
MySQL
MongoDB
Redis

Microservice Topology

Event-driven architecture with database-per-service, CDC via Debezium, and CQRS read models built from Kafka event streams.

Tip · swipe horizontally to explore the topology.

Database-per-Service

Every microservice owns its own data store — MySQL, MongoDB, or Redis — so services stay decoupled and independently deployable.

Event-driven Saga

Cross-service workflows (order → payment → inventory → shipment) are orchestrated by Kafka events — no distributed transactions.

CDC + Outbox

Debezium streams the MySQL binlog into Kafka, turning every database commit into a guaranteed, ordered event.

CQRS Read Models

analytics-service projects events into denormalised read models — fast reads without coupling to write-side schemas.

APACHE KAFKA · EVENT BUSschema registry · partitioned · replicatedorder.createdpayment.processedinventory.reservedshipment.dispatcheduser.createdWeb ClientReact · Next.jsMobile ClientFlutter (iOS · Android)CloudflareCDN + WAFAPI GatewayIstio Ingress · mTLS · rate-limitWeb BFFNext.jsMobile BFFNestJSauth-serviceNestJSorder-serviceBun · CQRS commandpayment-serviceNestJSinventory-serviceBunshipment-serviceNestJScatalog-serviceNestJSnotification-serviceNestJS · consumeranalytics-serviceBun · CQRS readaudit-serviceNestJS · complianceMySQLorders · paymentsDebeziumCDC · binlog → KafkaMongoDBcatalog · inventory · notificationsRediscache · rate-limit · sessions
Sync · REST / gRPC Async · Kafka event CDC · Debezium binlog

Architecture Viewpoints

Switch lenses — deployment, observability, CI/CD, or AI/design — to see the same platform from different angles.

How traffic reaches the platform and where workloads run.

Tip · swipe horizontally to explore the diagram.

Cloudflareedge + WAFKubernetesAWS EKSIstioservice meshAWS RDSMySQLAWS S3object storageAWSplatform account

Service Catalog

8 services in production · live status, owners, and versions.

ServiceStackSquadVersionHealthUptimeRPM
auth-serviceNestJSPlatformv3.4.1Healthy99.99%1,240
catalog-serviceNestJSCommercev2.8.0Healthy99.95%980
order-serviceBunCommercev1.6.2Degraded99.92%760
payment-serviceNestJSPaymentsv4.0.3Healthy99.98%540
inventory-serviceBunCommercev1.2.0Degraded99.70%410
notification-serviceNestJSGrowthv2.1.4Healthy99.93%1,820
analytics-serviceBunDatav0.9.7Down98.20%230
duck-bffNext.jsWebv5.2.0Healthy99.97%3,120

Platform Monitoring

Live-feel snapshot of throughput, latency, and recent platform events — all mocked for demo.

Requests / min
0
4.2%vs last period
p95 Latency
0ms
7.1%vs last period
Error rate
0%
0.18ppvs last period
Active services
0
1.0%vs last period

Throughput

Requests per minute · last 24h

req/min

p95 Latency

Milliseconds · last 24h

ms

Recent Platform Activity

Deploys, incidents, milestones, releases

  • order-service v1.6.2 deployed to prod
    GitHub Actions · EKS rolling update
    2 min ago
  • analytics-service elevated 5xx rate
    auto-mitigation triggered · on-call paged
    14 min ago
  • catalog-service v2.8.0 released
    changelog · 12 PRs merged
    1 hr ago
  • Kafka cluster upgraded to 3.7
    zero-downtime · Debezium re-snapshotted
    3 hrs ago
  • duck-bff v5.2.0 deployed to staging
    Playwright e2e · K6 smoke passed
    5 hrs ago
All figures, services, and events on this page are mocked for demonstration purposes · © The Duck Dose