Database Infrastructure

Tarasol uses a multi-database strategy with Microsoft SQL Server as the primary relational store, MongoDB for document-oriented data, and Redis for caching.

Microsoft SQL Server

Multi-Tenant Provisioning

Each tenant gets an isolated database. The provisioning flow:

Tenant Database Provisioning

Loading diagram...

Key Databases

DatabasePurposeORM
Tarasol.MultiTenancyCentral tenant configsSequelize
Tarasol.AdministrationUsers, roles, permissionsSequelize
Tarasol.[TenantName]Tenant business dataSequelize

Connection Configuration

NameTypeDefaultDescription
DB_HOSTstringlocalhostSQL Server hostname
DB_PORTnumber1433SQL Server port
DB_USERNAMEstringsaDatabase username
DB_PASSWORDstring-Database password
DB_POOL_MAXnumber10Max connections per pool
DB_POOL_MINnumber5Min connections per pool
DB_POOL_IDLEnumber10000Idle timeout (ms)

MongoDB

Used by Identity Service, Post Office, and Session Manager for flexible document storage.

Connection Configuration

NameTypeDefaultDescription
MONGO_URIstringmongodb://localhost:27017/tarasolMongoDB connection string
MONGO_DB_NAMEstringtarasolDatabase name
# Docker setup
docker run -d --name mongodb \
  -p 27017:27017 \
  mongo:6
Warning

Always back up tenant databases before running migrations. The migration scripts modify schema in-place and are not reversible.