Architecture Overview
Watt is designed as a next-generation Node.js application server that reimagines how distributed applications are built and deployed. Unlike traditional monolithic or microservice architectures, Watt provides a modular monolith approach that combines the best of both worlds.
Executive Summaryβ
Watt delivers a complete application runtime that orchestrates multiple applications within a single process, providing:
- Unified Development Experience: Build multiple applications with different technologies (Next.js, Express, Fastify) as a single application
- Built-in Application Mesh: Automatic inter-applications communication without complex networking setup
- Enterprise-Grade Operations: Production-ready logging, monitoring, and observability out of the box
- Cloud-Native Deployment: Deploy as containers or serverless functions with zero configuration changes
Conceptual Architectureβ
π Documentation Note: This diagram uses Mermaid syntax for interactive visualization. If your documentation platform doesn't support Mermaid diagrams, you can:
- Use Mermaid Live Editor to generate static images
- Replace with ASCII diagrams (examples provided throughout this document)
- Use alternative diagram formats supported by your platform
graph TB
Client[Client Applications] --> LB[Load Balancer]
LB --> Watt[Watt Runtime Instance]
subgraph "Watt Application Runtime"
subgraph "Application Mesh Layer"
Router[Request Router]
Discovery[Application Discovery]
LBInternal[Internal Load Balancer]
end
subgraph "Applications"
Frontend[Frontend Application<br/>Next.js/Astro/Vite]
API[API Application<br/>Fastify/Express]
Backend[Backend Application<br/>Database APIs]
end
subgraph "Infrastructure Applications"
Telemetry[Telemetry & Metrics]
Logging[Centralized Logging]
Cache[HTTP Cache Layer]
end
end
subgraph "External Dependencies"
DB[(Database)]
External[External APIs]
end
Router --> Frontend
Router --> API
Router --> Backend
API --> Backend
Frontend --> API
Backend --> DB
API --> External
Telemetry --> Prometheus[Prometheus/OTEL]
Logging --> LogAggregator[Log Aggregator]