Near real-time meter outage data processing for SmartCo with inIT Solutions: An AWS-powered solution for enhanced customer experience

Executive Summary

SmartCo is a smart metering analytics company that processes millions of meter data records daily. Their customers require access to meter outage data as soon as possible but previously faced a 30-minute delay. To address this pain point, SmartCo partnered with INIT Solutions to develop an AWS-based solution that processes meter outage events in near real time.

About SmartCo

Smartco supports energy retailers with high-quality smart meter services and energy distributors with energy insights. We are a joint venture company serving more than 250,000 urban and rural consumers across New Zealand. Our shareholders include Alpine Energy, Counties Power, Electricity Invercargill, Network Tasman, On Metering, The Power Company, and WEL Networks.

The Challenge

SmartCo's data provider could only offer real-time/near real-time data through a Java Messaging Service (JMS) queue. Java is not a core technology in their solution stack, and their customers needed this data to become available as quickly as possible. SmartCo reached out to INIT Solutions to develop a solution that would enable rapid integration of these messages into their solution stack.

Solution Architecture

The Solution

INIT Solutions designed a two-part solution leveraging AWS services to meet SmartCo's requirements. The first part is a Java program that consumes messages from the JMS queue and publishes them into Amazon SQS, where SmartCo can process them. The second part involves the infrastructure and automation to run the Java consumer application.

Using the Spring Boot framework, INIT Solutions built the Java application, incorporating AWS Java SDK to publish messages into SmartCo's AWS SQS. For the infrastructure, INIT Solutions opted for EC2, as SmartCo has more experience running and supporting EC2 workloads.

To ensure high availability and robustness, INIT Solutions used EC2, EC2 AutoScaling, and Systems Manager (Run Document and Ansible Playbook). They set up the EC2 instance and installed the Java application during system bootstrapping. Systems Manager (State Manager) was used to configure the instance and install the application when AutoScaling launches a new instance.

Autoscaling lifecycle hooks

Although an Elastic Load Balancer was not required for this solution, INIT Solutions implemented a custom health check using Spring Boot to add an endpoint for monitoring the application. A small bash script with curl and AWS CLI, scheduled via system cron, enabled a reliable AutoScaling health check from the instance itself.

The solution is delivered as a Serverless Application Model (SAM) nested application, which is SmartCo's preferred Infrastructure as Code (IaC) tool. They were able to fully leverage SAM even though the solution is not serverless. INIT Solutions used SAM CLI for processing and running traditional CloudFormation.

Using SAM Pipelines and GitHub Actions, INIT Solutions implemented CI/CD, allowing for automatic deployment of the solution.

Results

SmartCo can now provide real-time meter outage data to their customers, enhancing their experience. The highly available, scalable, and low-maintenance solution was delivered within a short timeframe, thanks to AWS and Spring Boot.

About inIT Solutions

INIT Solutions is a premier cloud services provider focused on offering businesses expert solutions on the AWS platform. Our dedicated team specialises in Managed Services, DevOps, Architecture, Application Development, Security, and Compliance. With a customer-centric approach and extensive industry expertise, we empower businesses to unlock the full potential of the AWS ecosystem, driving innovation and growth.