---
title: System Overview
url: https://www.tines.com/docs/self-hosted/reference-architecture/system-overview/
updated: 2026-05-08T16:06:40+00:00
---

*[tines.com](https://www.tines.com/llms.txt) › [Docs](https://www.tines.com/llms.txt) › [Self-Hosted](https://www.tines.com/llm/docs/self-hosted.md) › [Reference Architecture](https://www.tines.com/llm/docs/self-hosted/reference-architecture.md)*

# System Overview

*[View on tines.com](https://www.tines.com/docs/self-hosted/reference-architecture/system-overview/)*

## System overview

There are 8 basic system components.

| Component | Runnable via Docker container | Runnable via dedicated infrastructure (provided by customer) | Purpose |
| --- | --- | --- | --- |
| **Load balancer** | ✅ | ✅ | Routing requests to the web server component(s). |
| **Web server** | ✅ |  | Handling requests from the UI, and from API and webhook clients. |
| **Background worker** | ✅ |  | Background execution of, e.g., workflows. |
| **Command runner** | ✅ |  | Execution of custom scripts (powering the “Run Script” action, “Automatic Transform” and the “Code Analyst” tool in Workbench). |
| **Postgres** | ✅ | ✅ | Persistent data store. |
| **Redis** | ✅ | ✅ | Caching of data from the database and queuing for the background worker(s). |
| **SMTP server (optional)** |  | ✅ | Sending emails for user management, notifications, monitoring and the “Send Email” action. |
| **LLM provider (optional)** |  | ✅ | Large language model API used in support of all AI features. |

![tines-architecture-overview-general](https://www.datocms-assets.com/55802/1778256386-connectivity-diagram.png)

The **Web server**, **Background worker** and **Command runner** components form the core Tines application and must be run as Docker containers.

The **Load balancer**, **Postgres** and **Redis** components may be run as Docker containers, but where possible we recommend using available managed/dedicated infrastructure.

The **SMTP server (optional)** and **LLM provider (optional)** must be provided by the customer.

### Load balancer

Customers may choose to either use the nginx container we provide or use dedicated load balancing or reverse proxying infrastructure (e.g. AWS ALB) to route traffic to the web server component.

If this is configured, all user, webhook and API traffic reaches the load balancer first. TLS is also terminated at the load balancer. If none of the requests to Tines are successful, the load balancer logs are a good place to start.

### Postgres

Tines uses Postgres 14 `(>= 14.17)` as its persistent data store. Customers may choose to either use [the official Postgres Docker image](https://hub.docker.com/_/postgres) and run it as a container or use dedicated infrastructure (e.g. AWS RDS) to host a Postgres database. We highly recommend using a hosted service where possible to simplify scaling and backups etc.

All persistent data is stored in Postgres, including stories, cases, users, records, audit logs, etc. Almost every request will hit Postgres, including the UI from the web server and action runs from the background workers. If your application is entirely down, Postgres is the best place to investigate.

### Redis

Tines uses Redis/Valkey 7.2 as its cache, in-memory datastore, and queuing mechanism. You can run either using [the official Redis Docker image](https://hub.docker.com/_/redis) and run it as a container or use dedicated hosted infrastructure (e.g. AWS ElastiCache) — we strongly recommend the latter to simplify scaling and operations.

Redis/Valkey handles user sessions, background job queues, and general application caching. If you're seeing issues with action run queues or slower-than-expected requests, this is a good place to start investigating.

### SMTP server (optional)

Tines can be connected to customer provided SMTP server to send emails related to user management, monitoring, notifications, and to power the Send Email action.

### LLM provider (optional)

As described in our [AI documentation on providers](https://www.tines.com/docs/admin/ai/#ai-providers), Tines can be connected to a number of different AI providers. Configuring this is required to enable all AI features.

### Identity provider (SSO) (optional)

Tines supports [SAML 2.0 and OIDC ](https://www.tines.com/docs/admin/single-sign-on/)for single sign-on. Most production deployments authenticate users via a customer-owned identity provider. Tines must be able to reach the identity provider over HTTPS.
