Files
ad/molodetz/templates/docs/prose/architecture.md
T

722 B

Architecture

FastAPI with Jinja2, rendered on the server. SQLite through dataset, synchronous and deliberately without a threadpool. Sessions with PBKDF2-SHA256 passwords.

Layers

  • molodetz/database/: one file per subject, always import from the package root.
  • molodetz/routers/: mirrors the URL path.
  • molodetz/services/: background services under one supervisor with a file lock.
  • molodetz/templates/: one Jinja environment in templating.py.

Deleting

Everything is soft deleted with deleted_at and deleted_by. Only cleanup jobs delete for real.

Static files

Assets go through static_url(), which versions them under /static/v<version>/. Those are immutably cacheable for a year.