ZAZTEK International · Enterprise

Departments run themselves. The numbers still agree.

Financials, HR and payroll, logistics and inventory, maintenance and depot management on one database — with each department seeing only what it should.

Delivered in phases, scoped to your organisation. Not an off-the-shelf download.

Goods received
event
Inventory
event
Financials
Journal entry · auto-posted
Dr  Inventory Asset1,240,000
Cr  Accounts Payable1,240,000
Balanced · linked to source document

Modules never write the ledger. They emit events; Financials is the only writer. That one rule prevents most ERP data-integrity failures.

5Modules
~30Core tables
1Place isolation is enforced
7Phases

The five modules

Each owns its own tables and exposes a contract. None of them reaches into another's data — which is what lets a module be split onto its own server later without a rewrite.

Financials

General ledger, accounts payable and receivable, budgets by department, and the posting service every other module feeds. Trial balance, P&L, budget versus actual.

HR & Payroll

Employee lifecycle from hire to retirement, payroll runs that post to the ledger, travel and daily allowance claims, and pension accounts. Calculate, approve and post are separate permissions.

Logistics & Inventory

Items, warehouses, stock levels and reorder points, with QR-tagged assets tracked individually. Scans work offline and sync when the phone reconnects.

Repair & Maintenance

Reactive work orders raised from a scan, and preventive plans that generate their own. Parts consumed deduct stock and post their cost automatically.

Depot Management

Custody and movement of assets between depots, with approval on cross-department transfers and a full movement history retained for audit.

Configuration

Custom fields per entity, status workflows with permission-gated transitions, and roles composed in-app rather than in code. Modules switch on and off per department.

The decisions behind it

Written up as an architecture reference a review board would accept — with the reasoning, not just the diagram.

Modular monolith, not microservices first

Five tightly coupled domains where inventory posts to financials and payroll posts to the ledger. Distributed transactions across services would eat the engineering budget on day one. Strict module seams give you the option to split later — flip one adapter, no logic rewrite.

Isolation enforced in one place

Every table carries a tenant id, and every read and write goes through one scoped data layer that adds it — module code never writes its own cross-tenant SQL. That is the whole mechanism: not a rule each of forty queries has to remember, but one function they all call, with tests that try to read another tenant’s ledger through it and fail.

Transactional outbox

An event is published if and only if its transaction commits. This removes the whole class of bugs where the data was written but the message never went — or worse, went twice.

Separation of duties, enforced

Payroll calculate, approve and post are different permissions and the same person cannot do two of them. Roles can only grant permissions the granter already holds, so nobody escalates themselves.

Download the architecture document (PDF)

Diagrams, DDL for the core tables, the endpoint map, RBAC logic and the phased roadmap.

How it gets built

In phases, so you get working modules early instead of everything at once and nothing for a year.

Phase 0 — FoundationIdentity, tenant isolation, RBAC, audit, the event spine. Built.
Phase 1 — Inventory & QRItems, assets, stock, scan, depot transfers, offline sync.
Phase 2 — Financials coreChart of accounts, posting service, AP/AR, first cross-module postings.
Phase 3 — MaintenanceWork orders, preventive plans, parts to stock and cost.
Phase 4 — HR & PayrollEmployee lifecycle, payroll to the ledger, allowances, pension.
Phase 5 — Reporting & hardeningDashboards, custom fields, workflow UI, penetration test.

Phase 0 is complete and running: authentication, tenant isolation with tests that attempt a cross-tenant read and are refused, hierarchical RBAC, the audit interceptor and the outbox relay. Everything after it is quoted against your scope.

Engagement

Discovery

Before anyone commits to a build. We map your departments, approval chains, reporting obligations and what your existing systems already do well.

  • Workshops with each department
  • Module and phase recommendation
  • Written scope, timeline and fixed quote
  • No obligation to proceed
Start discovery →

First phase build

Starting figure for one module phase on the existing foundation. The full programme is quoted against scope after discovery.

  • Foundation deployed on your infrastructure
  • One module built, tested and in use
  • Your roles, departments and approval chains
  • Data migrated from what you use now
  • Admin and end-user training
  • Support through the next phase
Enquire → Open the ERP →

Tell us how your organisation actually works

ERP projects fail when the software decides how you should operate. Discovery comes first for a reason.