One backend for four frontends
JobStash runs four frontends on a single NestJS backend-for-frontend. I have been its only backend engineer since 2023.
Click an app to load a page, then turn on data loaders and caching and watch the database queries drop.
4 frontends
1 backend
Database
Each page load, illustrative numbers
- App asks
- 1
- Database queries
- 17
- Rough wait
- ~240 ms
App 1 loaded a page of 8 jobs. The backend looked up each job's company and tags one at a time: 17queries.
Each app asks the backend once per page, and the backend does the talking to the database. The example page and its numbers are made up to show the shape. The real backend serves four separate frontends and has held 99.9% across 250 endpoints.
I designed the backend-for-frontend that four frontends build against, in NestJS and TypeScript. It serves 150,000 monthly active users at roughly 500ms p99 and has held 99.9% across 250 endpoints.
I made the case for observability, built the pipelines, and led root-cause work when things broke.
Neo4j or Postgres
I ran the evaluation for moving our Neo4j store to PostgreSQL, query by query: which questions a graph answers cheaply, and which a relational model does.