Cooking Up Change: Essent’s Recipe for a High- Performance Energy Meter Platform.
Essent N.V. is the largest Dutch energy company based in ‘the Netherlands. providing her customers with gas, electricity, heat and energy services. As energy prices rose, solar panels have become mainstream, and delivering real-time energy data has become a crucial unique value point for energy companies. IT must adapt quickly to accommodate the sudden surge in users seeking real-time, concise insights into their energy consumption.
Due to this increased demand, Essents Meter Reading Master (MRM) platform, build in 2019 to serve as a comprehensive platform for collecting, aggregating, enriching, and providing meter readings for upstream systems was not able to handle the increased load: only 40% of the meter readings where available within 24 hours. In addition the complexity of the system prohibited any significant changes without breaking it.
Experts from Dataworkz, Smartworkz and Infraworkz joined Team Metermasters to help transitioning the current system to a modern event-based streaming architecture making it possible to satisfy the demand for real meter readings for it’s customer.
What was your biggest challenge?
Imagine a bustling restaurant, its kitchen a symphony of sizzling pans, chopping knives, and the rhythmic clatter of dishes. Amidst this culinary chaos, the chefs face a daunting task: revamping the entire menu while keeping the restaurant open and customers satisfied.
This is akin to the challenge faced by our team: rewriting a complex software system while ensuring business continuity. The existing code, a tangled mess of interdependencies, resembled a plate of overcooked spaghetti, its strands stubbornly clinging together.
How did you do it?
To tackle this culinary conundrum, Team Metermasters adopted a strategy akin to a skilled chef’s meticulous preparation. We carefully divided the system into manageable portions, each representing a distinct dish on the menu. By rewriting these portions one by one, we ensured that the overall system remained functional, much like a chef crafting each course with precision. Key to this approach was to meticulously compare the outcome of each rewritten portion with the real outcome of the original system, just as a chef tastes each dish to guarantee its perfection.
The result?
We have a clean working kitchen and data that normally needed 6 hours to cook was now ready for its customers in 2 seconds.
What did you like best?
The best part about witnessing this change from the beginning was the gradual change in the impact we could make. At first, we were able to make (relatively) minor changes to the system that had drastic positive effects; we went from having incidents every single day to one every week or month in the span of roughly half a year. At that point, we could actually start discussions about what features were needed, as we were no longer caught up in trying to keep the system running every day.
When we went for an event-driven setup with Kafka and Kubernetes for new data we needed to collect, tension was high during go-live as everyone was eager to avoid a situation similar to the go-live of the previous system. In the end, the only complaint we got was that the new system was too fast compared to the old one, as customers were seeing the new (more detailed) data before the old data was available.
Incremental Change
Testing and Quality Assurance
Rigorously test each component to ensure overall system stability.
Embracing Change
By embracing these principles, you can tackle even the most daunting software revamps, ensuring that your business remains operational and customers satisfied, even amidst the chaos of change.