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
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