Integrations
Wire Drumbeats into whatever your job is written in.
Every integration on this page is a variation on three HTTP requests:
curl -sf --max-time 3 "$API/start?run_id=$RUN_ID"
# ... the job ...
curl -sf --max-time 3 "$API/success?run_id=$RUN_ID" # or /failurecurl -sf --max-time 3 "$API/start?run_id=$RUN_ID"
# ... the job ...
curl -sf --max-time 3 "$API/success?run_id=$RUN_ID" # or /failureThere is no SDK to install, no agent to run, and no authentication header. If your language can make an HTTP request, it can talk to Drumbeats.
Pick your stack#
| Stack | Guide | Typical use |
|---|---|---|
| Node.js and TypeScript | Node.js | Express, Fastify, Nest jobs, Lambda handlers, Bun and Deno scripts |
| Python | Python | Django and Celery tasks, Airflow DAGs, FastAPI background jobs, plain scripts |
| Go | Go | Long-running workers, gRPC services, CLI cron jobs |
| PHP | PHP | Laravel scheduled tasks, Symfony Messenger consumers, WordPress cron |
| Shell and Bash | Shell | System cron, container entrypoints, glue scripts |
| GitHub Actions | GitHub Actions | Scheduled workflows and CI jobs |
| Kubernetes | Kubernetes | CronJob and Job resources |
| Claude, Cursor, VS Code | AI agent | Managing monitors conversationally through MCP |
Every language guide follows the same order: a minimal example, one reusable wrapper, the failure modes specific to that runtime, and the framework notes. Read one and you can skim the rest.
Do these three things regardless of language#
Give every ping a timeout. Three seconds is fine. Without one, a hung connection to Drumbeats can hold your worker for minutes.
Never let a ping throw. Catch and discard. A monitoring call that can fail the job it watches is worse than no monitoring.
Set max_duration_seconds and send start. A process killed by the OOM killer never sends a failure ping. Server-side hang detection is the only thing that catches it, and it needs both of those set.
Production hardening covers each in depth, along with payload caps and multi-environment routing.
What happens when it breaks#
The wiring itself has three failure modes worth knowing before you ship.
| Failure | What you see | Fix |
|---|---|---|
| The ping never reaches Drumbeats | A MISSED incident for a job that actually succeeded | Retries and timeouts, per production hardening |
The job dies before sending failure | The run stays open and is recorded as hung | Set max_duration_seconds and send start |
| Only the success path is wrapped | Failures look like silence until the window closes | Branch on both outcomes, or use the exit-code form |
Next#
Monitor types to pick Cron, Heartbeat, Event-driven, or Uptime before you wire anything. Ping API for the endpoints every guide here is calling.