StillDeep core concepts

The vocabulary of StillDeep: business server, registers, shifts, carts, sales, the outbox, printed numbers, the proxy and modules.

Business server

One server per business, on its local network. It holds the PostgreSQL database (the single source of truth), the gRPC gateway of the registers (Server.Service) and the Admin and Report web apps. Each business owns its server and its data.

Register

A point of sale: a touch register, a kiosk, a tablet or a web shop. A register has its own identity, its own permissions and its own local SQLite copy of the reference data (catalog, taxes, members). It never connects to the database directly: every operation goes through the proxy on the business server.

Screen

What the cashier or the customer sees. The screen is a client of the register engine, over the gRPC contract or in-process for .NET. It holds no business rule: it shows what the engine returns.

Shift

An employee's work period on registers: opened by badge or password, paused and resumed, possibly moved to another register, then closed with a cash count. Every payment counts in the shift that took it.

Cart and sale

A cart collects items, customer, discounts, fees and payments. The sales engine applies the same rules on every register. When the cart is finalized, the sale is written locally and sent to the server, which checks prices, taxes and totals again.

Outbox

The local table of sales and operations not yet sent to the server. A background worker drains it, and a register always drains it first at startup, before any update, so that an update never erases unsent sales.

Offline mode

When the server cannot be reached, the register sells from its local copy. Card payments still work if the terminal reaches its processor. Stock levels and limited seats are only guaranteed online; sales replayed from the outbox are never refused.

Printed numbers

Receipts, tickets, reservations and shifts carry a short readable number: two letters, the register, then a sequence (for example RE5000123). Two registers never print the same number, even offline.

Modules and extensions

Business modules (ticketing, retail, rentals, services, reservations, cards) are compiled in the engine and activated per business. Extensions are separate .NET packages that add rules, Admin sections and pages; they are installed from the Admin and distributed to the registers by the business server.

Money and quantities

Amounts are integer cents, percentages are basis points, fractional quantities are decimals. StillDeep never uses floating point numbers for money, taxes or quantities.