Ebook · PDF, 23 pages
The bugs that hurt a point of sale never show up in a demo.
A double charge on bad Wi-Fi. A sale saved without its payment. Two tills selling the last unit. Receipt numbers with gaps. This guide shows how Tilly POS designs each of them out — with the real ASP.NET Core and SQL Server code.
What’s inside
Everything in Building a Production POS in ASP.NET Core.
- The double charge — idempotency keys enforced by a unique index
- Half a sale — one transaction, and receipt numbers with no gaps
- The last unit — a conditional, row-locked UPDATE instead of check-then-write
- Stock as a ledger — and weighted-average cost in one SQL statement
- Multi-tenancy — EF Core query filters that default to nothing
- Sign-in — short JWTs, rotating hashed refresh tokens and reuse detection
- Permissions — without privilege escalation
- Audit — a log nobody can edit, not even the owner
- Billing webhooks — signed, time-limited and de-duplicated
- Shipping it — tests against a real SQL Server, Docker, health checks, backups — and a one-page checklist
Screens
What you get, as it looks.

Read how it works first. Free excerpt: gap-free invoice numbers in SQL Server ↗ — a free article on dev.to.
Questions before buying? Talk to us or WhatsApp +92 335 684 6600.