A realtime analytics platform built as around 15 Node.js microservices designed to run in air-gapped environments.
General System was building a next-generation realtime analytics platform. We came in at senior full stack level and stayed for around a year.
The shape was Node.js microservices on Docker and Kubernetes, around 15 of them, with TypeScript across the services and Postgres underneath. Air-gapped operation was part of the design brief, which is an unusual requirement for a platform built that way. Who the platform served, and what it analysed, is not ours to publish.
An air gap removes most of what a Node service quietly assumes: a reachable npm registry at install time, an outbound path for telemetry, a managed database endpoint, and someone who can pull a fresh image when a container misbehaves. Everything the platform needs has to be inside the bundle that goes through the door.
Around 15 services multiplies that. Each one needs its image and its dependencies present on site, with configuration that resolves offline, and the observability has to work without anything phoning home. Prometheus and Grafana are consistent with that, since both run inside the cluster. We cannot name the environments those services ran in.
We built the platform on Node.js microservices under Docker and Kubernetes, with the air-gapped case shaping the design. TypeScript ran across the services, Postgres held the data, React with Redux made up the front end, and Jest covered the test layer.
Prometheus and Grafana provided the operational view. Java and React Native were on the engagement too, though we cannot now say where they were used. Delivery ran through Git and GitLab, with JIRA for tracking.
Around 15 Node microservices on Docker and Kubernetes, designed to run in air-gapped environments.
That service count is the only figure we hold. There is no throughput number and no named customer, so what this page offers is the architecture and the constraint it was built against.
- Node.js
- Docker
- Kubernetes
- Jest
- TypeScript
- PostgreSQL
- Bash
- React
- Redux
- Java
- React Native
- Prometheus
- Grafana
- Git
- GitLab
- JIRA
Working on something similar?