Tarasol Platform Overview

Tarasol is a comprehensive enterprise correspondence management platform designed for large-scale document workflow, task management, and multi-tenant operations. Built and maintained by IN3Tech, it handles the complete lifecycle of correspondence including creation, routing, tracking, notifications, and archival.

System Architecture

The platform follows a microservices architecture with clear separation of concerns:

Tarasol System Architecture

Loading diagram...

Technology Stack

TechnologyVersionPurpose
NestJS10.xPrimary backend framework
Express.js4.xGateway service
TypeScript5.xType-safe development
Python/FlaskFile service (MIME detection)
F#Syncfusion document service
MS SQL ServerPrimary database (multi-tenant)
MongoDBIdentity service (user data)
RedisCaching, session management
RabbitMQAsync message queue
Socket.IOReal-time WebSocket communication
ElasticsearchFull-text search & logging
Angular 8Main web client (In3-Tarasol)
React 19Farabi AI Client

Service Tiers

Core Services

These services handle the primary business operations:

ServicePortDescription
Gateway:80API Gateway — routes all requests
Identity:8016Authentication, JWT, account management
Tenant:8001Multi-tenancy management
CMS:8003Content management
Correspondence:8008Correspondence lifecycle
Task:8014Task management
Admin:8004Users, permissions, hierarchy

Support Services

These services provide supporting functionality:

ServicePortDescription
Notification:8002Multi-channel notifications
Media:8005File upload and processing
Search:8015Full-text search
BI:8006Reports and analytics
AuditAudit trail logging
Profile:8017User profiles
FileMIME type detection (Python)
Syncfusion:6001Document viewing/editing

Communication Patterns

Synchronous (HTTP REST)

Services communicate directly for real-time operations:

  • Admin → Tenant (tenant config), Identity (token verification)
  • CMS → Admin (permissions), Media (attachments), BI (reports)
  • Correspondence → CMS (task updates), Media (files), Identity (auth)
  • Tenant → Media (file operations)

Asynchronous (RabbitMQ)

Event-driven communication for background processing:

  • Exchanges: session_manager, structure_entities_events, messages, identity_events, ws_exchange, dlx_exchange
  • Key Events: delegation created/cancelled, permission changed, OTP requests, session events

Request Flow

Typical Request Flow

Loading diagram...

Next Steps