LemonChannels (lemon_channels v0.1.0)

View Source

LemonChannels provides channel plugins and outbox for message delivery.

This app is responsible for:

  • Channel plugin registration and discovery
  • Outbound message delivery with retry and rate limiting
  • Deduplication to prevent duplicate messages
  • Chunking for long messages
  • Telegram adapter (and future channel adapters)

Architecture

[Router] -> [Outbox] -> [Plugin] -> [External Channel]
               |
               v
          [Dedupe/RateLimit/Chunker]

Plugin System

Channels are implemented as plugins that implement the LemonChannels.Plugin behaviour. Each plugin provides:

  • normalize_inbound/1 - Convert raw channel data to InboundMessage
  • deliver/1 - Send outbound payloads to the channel
  • gateway_methods/0 - Control plane methods for the channel

Summary

Functions

Enqueue an outbound payload for delivery.

Get a registered channel plugin by ID.

List all registered channel plugins.

Functions

enqueue(payload)

Enqueue an outbound payload for delivery.

get_plugin(id)

Get a registered channel plugin by ID.

list_plugins()

List all registered channel plugins.