O KumoMTA é um único binário em Rust com scripts em Lua para toda a configuração em tempo de execução. O mesmo binário cuida de listeners SMTP, filas, entrega, logs e inspeção via HTTP.
Modelo de processos:
┌─ Listener (SMTP)
├─ Listener (HTTP API)
[ kumod ] ──┐ │
├──► ├─ Queue (per scheduled queue: tenant × destination)
│ │
│ ├─ Egress sources (IP pools)
│ └─ Logging hooks → JSON / ClickHouse / S3
│
└─ Lua VM (config + per-event policy)
Conceitos-chave que você vai encontrar:
| Termo | Significado |
|---|---|
| Tenant | Remetente lógico (muitas vezes um cliente de um ESP) |
| Egress source | Um IP de origem vinculado às conexões de saída |
| Egress pool | Um grupo de origens entre as quais se faz a rotação |
| Scheduled queue | Fila por tenant × destino |
| Throttle | Limite de taxa (msgs/s ou conexões) por chave |
| Hook | Callback em Lua para eventos: smtp_server_message_received, smtp_client_message_delivered etc. |
Tudo se conecta via Lua. Não há XML, nem INI, nem main.cf. Leia o init.lua e você sabe o que o MTA faz.
Entre para acompanhar o que você já leu.