The problem

Generating map and schedule PDFs required several APIs and took a long time. Requests frequently timed out, and cold starts added another source of delay.

That also made development slower. A change to the PDF workflow involved coordinating work across multiple APIs.

The architectural decision

The work included a migration to a single API with queued workloads. The reason for consolidating the API was to reduce the coordination needed across endpoints and give the workflow a common backend.

Queued processing gives slow PDF generation a lifecycle separate from the incoming request. The request timeout no longer has to be the time budget for the entire rendering job.

This introduces a tradeoff. Background work needs a way to communicate progress and failure, and a queue alone does not remove cold starts or make rendering faster. The execution environment and the rendering work still matter.

My work at Upcastr

I worked as a Software Engineer II at Upcastr from 2023 to 2025. My work included the API migration and queued workloads, Stripe Connect checkout, QR tickets, invoices, and analytics for a platform serving multiple tenants.

Implementation

Remix · Bun / Hono · PostgreSQL · AWS SQS

Discuss a related problem ↗