Overview
Boomerang is an alerting engine built on Kontiki. Producers publish alerts; the core matches YAML subscriptions; notifiers deliver (email, Telegram, …).
1.0.0 freezes YAML targeting (app.subscriptions, notifier app.endpoints)
and the bus contracts. Both ends speak shared contracts (boomerang-contracts):
Producers ──► NormalizedAlert ──► subscription + alert-engine ──► NotificationRequest ──► Notifiers
- Upstream: add a producer that emits
NormalizedAlert(AMQPalert.normalizedorPOST /alerts) — no change to the engine. - Downstream: add a notifier that consumes
{channel}.alerting.notification.requestedand exposes a channel catalogue — same targeting model. - Middle: who gets notified is declared in YAML (
app.subscriptions+ notifierapp.endpoints).
More detail: docs/features.md · docs/contracts.md · docs/configuration.md.
Install
Run the platform (CLI entrypoints):
pip install kontiki-boomerang
# boomerang-subscription, boomerang-alert-engine,
# boomerang-email-notifier, boomerang-telegram-notifier, …
Extend Boomerang (producers / notifiers — contracts only):
pip install boomerang-contracts
The quickstart below uses Docker Compose instead of a local pip install.
Quickstart — earthquake → Telegram / MailHog
The demo stack polls USGS, normalizes quakes, and notifies Telegram plus email
(MailHog). Targeting lives in stack/subscription.demo.yaml
(magnitude >= 2 → telegram.alerts and email.inbox).
1. Bot token (once):
cp stack/notifiers/telegram_bot_token.yaml.example \
stack/notifiers/telegram_bot_token.yaml
# set app.telegram.bot_token from BotFather
2. Telegram chat in stack/notifiers/telegram.yaml:
app:
endpoints:
alerts:
chat_id: "YOUR_CHAT_ID"
3. Start the demo:
make stack-up-demo
Email copies land in MailHog (http://127.0.0.1:8025). When a matching quake arrives, Telegram looks like this:
Stop the stack:
make stack-down
Details (pipeline, HTTP ingest, catalogues, contracts): docs/features.md.
Documentation
- Index:
docs/README.md - Features:
docs/features.md - Contracts:
docs/contracts.md - Configuration:
docs/configuration.md·docs/boomerang-config.example.yaml - Stack config:
stack/ - Contributing:
CONTRIBUTING.md - License:
LICENSE(Apache-2.0)
| Service | README |
|---|---|
| Subscription | boomerang/services/subscription/README.md |
| Alert engine | boomerang/services/alert_engine/README.md |
| Email notifier | boomerang/services/notifiers/email/README.md |
| Telegram notifier | boomerang/services/notifiers/telegram/README.md |
| Earthquake feed (demo) | boomerang/services/alert_services/earthquake/README.md |
Metadata
Release files for kontiki-boomerang 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kontiki_boomerang-1.0.0.tar.gz | 25.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kontiki_boomerang-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 71.8 kB
Release files / kontiki_boomerang-1.0.0.tar.gz
| Download URL | kontiki_boomerang-1.0.0.tar.gz |
|---|---|
| Size | 25.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4086befea5c526b838d3ec1c5660d03e46882ff4afcc49b0633b4d71c418e8c8
|
|
BLAKE2b-256 checksum How to use checksums |
e0d452be709f44c47547ae687e11403c8c724334cdc623083496520b4b0ff64c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.13.7 Linux/6.8.0-139-generic
|
Release files / kontiki_boomerang-1.0.0-py3-none-any.whl
| Download URL | kontiki_boomerang-1.0.0-py3-none-any.whl |
|---|---|
| Size | 46.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
92fd78cc9bd0b2f908d55b915b1d25779b5fed860a5cbceaebc137a9698d3cc9
|
|
BLAKE2b-256 checksum How to use checksums |
8cbfbbd298669969cf7e7d6b3c645609ea4fb001ee52166f17207fa000c5fa7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.13.7 Linux/6.8.0-139-generic
|