Skip to content

tzrikka/timpani

Repository files navigation

Timpani

Go Reference Go Report Card

Timpani is a Temporal worker that sends API calls and receives asynchronous event notifications to/from various well-known third-party services.

API calls are wrapped and exposed as Temporal activities for robustness and durable execution in larger workflows.

Event listeners are similarly reliable and scalable, and support multiple technologies: HTTP webhooks, WebSocket connections, and Pub/Sub subscriptions. They may be passive and stateless receivers with a static configuration on the remote service's side, or semi-active subscribers that renew their subscription from time to time, or stateful clients maintaining a 2-way streaming connection with the remote service.

For example:

  • Discord: WebSocket client
  • Gmail: Google Cloud Pub/Sub subscriber
  • Jira: stateful HTTP webhook (with periodic subscription renewals)
  • Slack: stateless HTTP webhook / WebSocket client

Dependencies