Architecture

Components, connections, and responsibilities for the web application, backend, AWS services, and branch hardware.

People and stations

Staff browsers
Public pages
Reception, kiosk and POS
HTTPS requests and HTML responses

SvelteKit BFF

Sessions, page rendering, form handling, and calls to the Python API

Authenticated HTTPS API calls

Python domain API

Authorization, business rules, database transactions, audit, and integration jobs

AWS PostgreSQL

Business records, configuration, sessions, jobs, and audit records

Private object storage

Documents, photos, exports and generated files

External services

Messages, accounting and payment providers

On-premises branch service

Device status, print and gate jobs, and the approved offline queue

Scanners, printers, gates, and displays

AWS PostgreSQL

PostgreSQL in AWS stores Oto application data.

Responsibilities

  • Store the records and configuration required by Oto workflows.

Boundaries

  • The application database is PostgreSQL hosted in AWS.

Branch service

An on-premises service connects Oto to hardware at each branch.

Responsibilities

  • Connect POS stations to the branch scanners, printers, gates, and displays.
  • Route branch output to the device assigned to each station role.
  • Report whether a requested hardware action succeeded or failed.

Boundaries

  • The service runs on premises at the branch.
  • The deployed device models, addresses, protocols, and station roles remain supported.

External integrations

Oto exchanges messages, payments, accounting records, and other workflow information with configured providers.

Responsibilities

  • Connect Oto workflows to the required messaging, accounting, payment, and support providers.
  • Show users the relevant delivery, payment, or reconciliation status.

Boundaries

  • Provider-specific capabilities remain subject to the configured provider and approved integration.

File storage

File storage holds the documents, photos, exports, and generated files used by Oto workflows.

Responsibilities

  • Store and retrieve files required by Oto features.
  • Keep access to sensitive files within the permissions of the associated workflow.

Boundaries

  • The storage technology will be selected during implementation.

Python API

The Python API supports Oto workflows and application data.

Responsibilities

  • Provide the application capabilities used by the SvelteKit BFF.
  • Connect Oto workflows to application data and branch services.

Boundaries

  • The backend API is implemented in Python.

SvelteKit BFF

The SvelteKit application provides the browser-based staff, public, kiosk, and POS interfaces.

Responsibilities

  • Present Oto pages and workflows to browser users.
  • Connect browser interactions to the Python API.

Boundaries

  • SvelteKit is used as the browser-facing backend-for-frontend.

System connections

The SvelteKit application, Python API, AWS PostgreSQL database, external providers, and branch services work together to provide Oto workflows.

Responsibilities

  • Connect browser workflows to Oto application data and services.
  • Connect branch workflows to local hardware.
  • Connect configured workflows to external providers.

Boundaries

  • The installed payment terminals operate independently of Oto and do not send payment status to it.