← Case Studies

Energy · Solar and energy operations provider · August 3, 2023

Energy IoT Operations & Billing Platform

Microservices for device telemetry, contracts, billing, and support — with an ops dashboard and mobile shell for field and back-office teams.

Outcomes

Architecture

Event-driven microservices

Collectors and domain services scale on different axes.

Operations UI

Web + mobile

One Angular codebase packaged for desk and field.

Visibility

Observability stack

Grafana/Loki-style monitoring for production confidence.

Context

Distributed solar assets generating continuous telemetry, with commercial processes that must stay aligned to device reality.

Challenge

Inverter and meter data, customer contracts, billing, and support tickets lived in disconnected systems. Operations needed realtime device health; finance needed reliable billing events; support needed a single client view.

Approach

We designed a NestJS microservice landscape with message-driven collection and domain services (auth, billing, client, solar, contract, notification, support). A Angular-based ops dashboard with Capacitor packaging gave web and mobile access. Infrastructure patterns included API gateway, observability, and containerized workers for collectors.

Architecture

NestJS services on RabbitMQ/Redis, PostgreSQL and MongoDB where each fit, Prisma/TypeORM data access, Kong gateway, Grafana/Loki observability, Helm/AWS packaging, Firebase for push, Angular + Capacitor admin UI, and Node worker packages for device collection pipelines.

Scope

  • Device data collection and processing
  • Client and contract management
  • Billing and notifications
  • Support workflows
  • Operations dashboard
  • API gateway and observability

Constraints

  • High-volume device messages
  • Need to evolve services independently
  • Mixed relational and document data shapes
  • Field teams requiring mobile access

Solution highlights

  • Message bus between collectors and domain services
  • Clear service boundaries for billing vs telemetry vs support
  • Gateway + observability as default production posture
  • Capacitor packaging of the ops UI for Android/iOS

Technologies

NestJSRabbitMQRedisPostgreSQLMongoDBKongGrafanaHelmAWSAngularCapacitorFirebase

Results

  • Unified service map for telemetry, contracts, billing, and support
  • Collector workers decoupled from API services for safer scale-out
  • Ops dashboard covering devices, clients, and operational workflows
  • Mobile-capable shell for teams that work away from the desk

Lessons learned

  • Energy platforms fail when billing logic sits inside the collector path.
  • Mobile ops is not a separate product — it is the same workflows with stricter UX constraints.
  • Gateway and telemetry must be designed before the tenth microservice appears.

Let's talk

Ready to build something that lasts?

Partner with a senior engineering team that designs, ships and operates software businesses rely on for years.

Get in touch