AT.

01 / Project case study / 2026

Vapor Vault

Ephemeral file infrastructure

Temporary file sharing with a complete lifecycle: upload, storage, processing, access and scheduled deletion.

Explore the problem. Follow the system.

02 / The problem

A reason to build.

A temporary transfer should not become permanent storage. The engineering challenge is coordinating file bytes, metadata and background work while keeping cleanup reliable across separate services.

03 / System design

Follow the architecture.

A NestJS API uses PostgreSQL and Prisma for metadata, SeaweedFS for files, and Redis with BullMQ for background processing. Direct uploads send bytes to storage before metadata registration. Workers save recovery checkpoints. Hourly cleanup deletes files older than 24 hours and their database records; Docker makes deployment reproducible.

  1. 01File
  2. 02Upload URL
  3. 03Object storage
  4. 04Metadata
  5. 05Temporary access
  6. 06Job queue
  7. 07TTL
  8. 08Deletion

04 / Engineering decisions

The choices inside.

  1. 01

    Separate object storage from relational metadata and the application API.

  2. 02

    Move processing into BullMQ workers and persist checkpoints to support job recovery.

  3. 03

    Delete expired storage objects and their database records through scheduled lifecycle cleanup.

05 / Technology

A stack with purpose.

The technologies connecting this system.

  • NestJS
  • TypeScript
  • PostgreSQL
  • Prisma
  • SeaweedFS
  • Redis
  • BullMQ
  • Docker

06 / Engineering outcome

Architecture, applied.

Demonstrates a file lifecycle across an API, database, object store and worker queue, with recovery checkpoints and automatic cleanup. Expiration is enforced by a scheduled job, so physical deletion follows the cleanup cadence.