Engine swap from SQLite (operator decision, post-session discussion of
session ecomm-0020): ecomm's destination workload is transactional and
multi-tenant (row locking arrives with the first inventory/checkout
Feature), pre-data is the cheapest swap moment, and no-ORM dialect drift
made the dev/prod split a planned demolition. Dev runs one pinned Postgres
container (compose, named volume); the app stays native. D-7/D-8; retires
R-3, adds R-6; Q-2 resolved.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>