skip to content
← projects
Screenshot of Schedule API
2024·Mindenit

Schedule API

Co-developer

NestJS rewrite of a Fastify API. 17-table PostgreSQL schema in Drizzle, CTE pre-filter eliminating a Cartesian product, Redis-backed shareable links.

NestJSPostgreSQLDrizzleRedisTypeScriptDocker

The original Fastify service had grown organically and carried a Cartesian product in event lookups that made response times unpredictable under load.

Rewrote it in NestJS with one other developer and redesigned the data model: 17 tables in Postgres, managed through Drizzle. The Cartesian product went away via a CTE pre-filter that narrows the result set before joins — a targeted fix with a large impact on query plans.

Redis backs two features: shareable timetable links with configurable TTL, and per-user rate limiting on link generation. Runs in Docker, CI on GitHub Actions.