Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions docs/adr/0009-no-django-bootstrapper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# No Django bootstrapper

**Decision:** `lite-bootstrap` will not ship a Django bootstrapper. Django's size makes it the
framework most likely to be proposed by someone who has not hit the contract below.

Every bootstrapper keeps one contract: the user constructs the application, passes it in, and gets
the same object back. Django's observability is conventionally owned by `settings.py` — `MIDDLEWARE`
ordering, installed apps — which runs before any object a bootstrapper could be handed, so the
contract has no natural expression there. ADR-0001 is the calibration: FastMCP was the hardest
framework to fit and still had an application object to attach to.

Rejected: **attach to a constructed `ASGIHandler` instead.** This is the shape that would fit, and
today it means putting middleware outside `MIDDLEWARE`, diverging from every Django deployment guide
and from what a Django user would debug against.

**Revisit trigger:** a released, maintained path that attaches instrumentation to a constructed
`ASGIHandler` (or equivalent) without going through `settings.py`.
Loading