← ALL WORK

CASE STUDY · 2023 · AUTOMATION

DISPATCH

Internal job router — reliably ferries work between six SaaS tools.

ROLE
Solo
YEAR
2023
STACK
Node · Temporal · Postgres

PROBLEM

A small ops team had stitched together their tooling with Zapier, three Make scenarios, a Lambda someone wrote on holiday, and a Slack workflow that everyone was afraid to touch. When a single integration drifted, work disappeared. Nobody could tell you, on a given Tuesday, where a given task lived.

The asks were unromantic: durable retries, idempotency, observability, the ability to add a new SaaS without re-architecting the world.

APPROACH

Modelled every cross-system action as a typed Job with explicit inputs, side-effects, and a contract for "done." Jobs are queued onto Temporal so retries are durable and visible; failures are addressable, not just logged.

Wrote thin adapters for each SaaS instead of a generic glue layer — six adapters, each ~80 lines, each owning its own auth, pagination, and rate-limit dance. New integration = one adapter, one schema, one test fixture.

Built an internal "where did this go" view: a single Slack-friendly URL per job that shows the timeline, retries, payloads at each hop, and the human in the loop if any.

OUTCOME

Retired the Zapier + Make + holiday-Lambda triumvirate. Net infra spend dropped; net legibility went up.

Mean-time-to-diagnose for "where did the task go" dropped from "ask three people" to one URL.

Still humming. Last new integration took a Friday afternoon.

CREDITS

Engineering & ops
João M. Mota

ELSEWHERE IN THE ARCHIVE

More stations