Eliot (Eliot v0.2.0)

View Source

Eliot - 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:

Summary

Functions

Returns configuration for the given key.

Starts MQTT connection with the configured broker.

Returns the version of Eliot.

Functions

config(key, default \\ nil)

Returns configuration for the given key.

start_mqtt_connection()

Starts MQTT connection with the configured broker.

version()

Returns the version of Eliot.