Three records.
BEGIN → COMMIT
Or nothing does.PostgreSQL / atomic transaction
Production business software
Hardware Store ERP
One invoice. Every part in agreement.
Billing is never just a PDF. It changes stock, customer balances and the books. I built a retail and wholesale ERP that keeps those pieces together.
- React
- Node.js
- PostgreSQL
- Redis
- AWS
Inside the system
Keep the transaction whole
Invoice creation uses a six-step PostgreSQL transaction with FOR UPDATE row locking. Invoice, stock and ledger updates succeed together, avoiding partial business records.
Move slow work out of the way
BullMQ and Redis workers generate PDFs with Puppeteer, then store them privately in S3. PostgreSQL pg_trgm search supports partial and misspelled product names.
Run it in the real world
Billing, inventory, pricing, unit conversion, customer ledgers and financial reports, deployed on Ubuntu with AWS RDS PostgreSQL and CloudFront.
Mar 2026 — present







