abstract
ECO is a distributed, microservices-based web platform for real-time monitoring and optimization of household utility consumption (electricity, gas, water). The system ingests telemetry from network-connected smart hookups, stores measurements in a time-series database, and exposes live dashboards, historical analytics, consumption forecasts, and configurable threshold alerts. Seven independently deployable services, derived from DDD bounded contexts, communicate through a Kafka-backed event-driven pipeline with transactional outbox, inbox deduplication, and dead-letter queues, achieving effectively—once processing and fault-tolerant data propagation. The Monitoring service maintains a Redis cache of measurement tags, hookup metadata, user existence, and zone mappings, kept consistent via Kafka domain events; on broker unavailability the system falls back to direct inter-service HTTP calls, with hookup ID misses always triggering a re-query to prevent measurement loss. The entire stack is containerized and deployed via Docker Compose on a single machine.
outcomes