Energy / Automated demand response platform

Smart Grid Software Development For Demand Response

Scaling an automated demand-response platform: OpenADR 2.0a and 2.0b event handling, monitoring and deployment.

Enersponse DRMS reports page on a laptop with a site-energy line chart and an hourly usage heat map, beside a wind turbine and solar panel illustration.

The opportunity

More assets, harder to run

As more energy assets and utility integrations were added, scaling, monitoring, deployment and event orchestration of the demand-response platform became harder to manage.

Indeema has successfully delivered a scalable, reliable platform that supports the growth of distributed energy operations.
James MuracaCTO, Enersponse

The solution

Same runtime, clearer workflows

The platform kept its AWS serverless runtime. Indeema reworked OpenADR event handling and orchestration across VENs and improved monitoring and delivery.

  1. 01OpenADR 2.0a and 2.0b
  2. 02VEN event workflows
  3. 03Monitoring and logging
  4. 04Documented APIs
  5. 05Deployment and tests
Diagram of three sites with energy management systems receiving temperature setbacks from a supervisor, which sends HTTPS POST requests through a firewall to the Enersponse cloud on AWS, connected to a utility.

The impact

What changed for the platform team

  • One OpenADR model supportedOpenADR 2.0a and 2.0b supported
  • Event flow hard to followOrchestration restructured across VENs
  • Hard to diagnose issuesImproved monitoring and logging
  • Inconsistent deployment and testingMore consistent workflows

The work was delivered for Enersponse's existing DRMS. APIs are documented for the platform teams.

Engineering judgement

Decisions that shaped the product

Review before changing

Start with a full review of architecture, OpenADR flows, infrastructure and pipelines, and base the change proposals on its findings.

Build on the serverless model

Improve the existing Lambda-based architecture and event orchestration to handle the growing number of VEN instances.

Treat observability as platform work

Improve monitoring and logging directly, because shared CloudWatch log streams were making diagnostics difficult.

Document the API surface

Use Swagger-based documentation for the backend APIs that utilities, partners and internal teams integrate with.

Put LLMs in the engineering loop

Use LLM coding assistants to move faster on a protocol-heavy codebase, keeping code review, PHPUnit tests and the deployment pipeline as the quality gate.

Built with

OpenADR 2.0a · OpenADR 2.0b · PHP · Python · MySQL (Amazon RDS) · AWS Lambda · Amazon SNS · Amazon CloudWatch

More case studies

All case studies ↗

A comparable product problem?

Enersponse demand-response platform

Discuss a comparable challenge