Status
Status
Durable addressed agent mail over generic Watchdog work
Stability
Section titled “Stability”BirdDog declares source version 0.3.0. Until 1.0, a minor release can change the public API, so pin the version you test against.
Package qualification does not publish a release. Check the npm registry before choosing a released version.
Limits and errors
Section titled “Limits and errors”- Retry schedule. A failed delivery retries after 2 seconds, doubling each time, capped at 5 minutes. After 20 attempts the reply is exhausted. Its row stays in the outbox, and BirdDog stops posting it and stops waking for it.
- At-least-once. If the recipient accepts a reply but recording the receipt fails, the retry uses the same mail key. Recipients must admit a repeated key idempotently.
- Malformed rows. A row that does not parse is deleted during a drain. A malformed row met during fan-out fails that fan-out.
- Fan-out writes first. Every reply is persisted before the wake is
scheduled. If
scheduleWakefails,fanOutrejects but the replies are already in the outbox, so replaying the settlement is safe. - Invalid input.
agentJobanddecodeAgentJobthrow a schema error on input that does not match.fanOutrejects withBirdDogError("invalid agent job payload")for a job whose payload is not BirdDog’s. - Host failures. The Promise mail room wraps a failing port in a
BirdDogErrorand keeps your original error as itscause. The messages areoutbox read failed,outbox write failed,outbox delete failed,mail transport failedandwake scheduling failed. Apostthat throws during a drain is logged and retried, not rethrown.
Contribute and license
Section titled “Contribute and license”BirdDog is MIT licensed. See LICENSE.