
Overview
Microservices App is a comprehensive microservices architecture demonstration platform that showcases modern cloud-native development practices. Built with a polyglot technology stack, it demonstrates real-world patterns for building, deploying, and observing distributed systems. This platform combines Go services with connect-go/gRPC, Node.js services with Express, and a React 19 frontend with type-safe API communication via Protocol Buffers.Key Features
Type-Safe Communication
Protocol Buffers with connect-go and connect-query ensure end-to-end type safety from backend to frontend
Full Observability Stack
Integrated monitoring with Prometheus, Grafana, Loki, and Tempo for comprehensive system insights
Cloud-Native Ready
Kubernetes-native deployment with Tilt for local development and nixidy for infrastructure as code
Developer Experience
Nix-powered development environment with automatic dependency management and consistent tooling
Technology Stack
Backend Services
Go Microservices
- Greeter Service - Demonstrates service-to-service calls and external API integration
- Caller Service - HTTP client service for external API calls
- Gateway Service - API gateway with custom language service integration
- Framework: connect-go (gRPC-compatible)
Node.js Services
- Auth Service - JWT authentication with bcrypt password hashing
- Custom Lang Service - Custom language processing service
- Framework: Express 5
- Testing: Vitest
Frontend & Infrastructure
Frontend
- React 19 with TypeScript
- Vite for blazing-fast HMR
- connect-query + TanStack Query for type-safe API calls
- MSW for API mocking in development
Infrastructure
- PostgreSQL 17 for data persistence
- Traefik v3 as reverse proxy and API gateway
- Docker Compose for local development
- Tilt + Kind for Kubernetes development
Architecture Highlights
Development Features
Nix-Powered Development: All dependencies (Go, Node.js, kubectl, buf, tilt, etc.) are automatically installed via Nix when you run
direnv allow.Code Generation
Protocol Buffers with
buf generate creates type-safe clients for Go and TypeScriptHot Reload
Tilt provides live updates for Kubernetes deployments without rebuilding containers
Pre-commit Hooks
Automatic formatting, linting, and testing with golangci-lint, Biome, and treefmt
Use Cases
This platform is ideal for:- Learning microservices patterns - Service discovery, inter-service communication, API gateways
- Exploring observability - Distributed tracing, metrics collection, log aggregation
- Understanding Protocol Buffers - Type-safe API contracts across multiple languages
- Kubernetes development - Local k8s workflows with Tilt and Kind
- Building production systems - Reference architecture for cloud-native applications
What’s Next?
Quick Start
Get the platform running locally in minutes
Architecture Deep Dive
Understand the system design and communication patterns
GitHub Repository: hackz-megalo-cup/microservices-app
