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.