Ellenex's IoT platform connects thousands of devices, transmitting data day and night. Scaling efficiently—both upwards and downwards—is not just a performance requirement but also an environmental responsibility. This blog post will delve into the architecture that makes this possible, from our UDP server to our AWS Lambda-based data processing pipeline.
The UDP Server: The Gateway for IoT Devices
The UDP server plays a crucial role in our architecture. It is an ECS workload that receives data from our devices, decrypts, and queues it for further processing. This is one of the services in our pipeline that doesn't fully scale all the way down to 0 as it needs to have at least one instance running to listen for connections. But this isn't inefficient as our devices communicate throughout the day and at no point in time is the UDP server idle.
AWS Lambda: The Backbone of Data Processing
Our suite of microservices is deployed as AWS Lambda functions. Each function is designed to do one specific task, adhering to the principle of separation of concerns. For instance, when adding a new device, an endpoint is invoked to check for permissions, followed by data copying from a device model to create the new device. This selective invocation of functions drastically reduces resource usage compared to monolithic architectures.
The performance of our system is a testament to its efficient design. The average latency on our most-used function is just 120ms. These efficiencies come in handy when we try to invoke multiple functions for a business flow and also when there is an incident and a group of devices start high-frequency sampling and we need more computing to receive and process these high volumes of data.
We saved more than 1.1MTCO2e over the last 5 years.
Computing has a carbon footprint, and at Ellenex, we take our environmental responsibilities seriously. Though we haven't yet measured the exact carbon emissions reduced by the use of microservices compared to a monolith, we do monitor our overall reduction by using AWS, and according to the AWS Carbon Footprint tool, we saved 0.8MTCO2e over the last 3 years.
Efficient scaling is vital for performance and sustainability. At Ellenex, we have optimized every layer of our architecture to ensure both. With the constant improvements and the switch to ARM-based processors, we aim to further minimize both latency and environmental impact.