System overview
There are 8 basic system components.

The Web server, Background worker and Command runner (optional) 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 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 7.2 as its cache, in-memory datastore and queuing mechanism. Customers may choose to either use the official Redis Docker image and run it as a container or use dedicated infrastructure (e.g. AWS ElastiCache) to host a Redis instance. We highly recommend using a hosted service where possible to simplify scaling etc.
Redis is used for user sessions, background job queues and general application cache purposes. If you're experiencing issues with the worker queue for action runs, or slower than usual requests, Redis could be 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, Tines can be connected to a number of different AI providers. Configuring this is required to enable all AI features.