Eliot (Eliot v0.2.0)
View SourceEliot - Production-ready IoT data ingestion system.
Provides fault-tolerant MQTT communication, structured logging, and comprehensive error handling for scalable device fleet management.
Features
- Fault-tolerant MQTT communication using Tortoise client
- Structured logging with telemetry integration
- Comprehensive error handling with retry mechanisms
- Production-ready with OTP supervision trees
- Scalable architecture for device fleet management
Quick Start
# Start the application
{:ok, _} = Application.start(:eliot)
# The MQTT client and supervisors start automatically
Configuration
Configure MQTT broker settings in your application config:
config :eliot,
mqtt_broker: "localhost",
mqtt_port: 1883,
client_id: "eliot_client"
Architecture
Eliot uses OTP supervision trees to ensure fault tolerance:
Eliot.Application
- Main application supervisorEliot.Logger
- Structured logging with telemetryEliot.ErrorHandler
- Centralized error handling and recovery
Summary
Functions
Returns configuration for the given key.
Starts MQTT connection with the configured broker.
Returns the version of Eliot.