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
| Technology | Version | Purpose |
|---|---|---|
| NestJS | 10.x | Primary backend framework |
| Express.js | 4.x | Gateway service |
| TypeScript | 5.x | Type-safe development |
| Python/Flask | — | File service (MIME detection) |
| F# | — | Syncfusion document service |
| MS SQL Server | — | Primary database (multi-tenant) |
| MongoDB | — | Identity service (user data) |
| Redis | — | Caching, session management |
| RabbitMQ | — | Async message queue |
| Socket.IO | — | Real-time WebSocket communication |
| Elasticsearch | — | Full-text search & logging |
| Angular 8 | — | Main web client (In3-Tarasol) |
| React 19 | — | Farabi AI Client |
Service Tiers
Core Services
These services handle the primary business operations:
| Service | Port | Description |
|---|---|---|
| Gateway | :80 | API Gateway — routes all requests |
| Identity | :8016 | Authentication, JWT, account management |
| Tenant | :8001 | Multi-tenancy management |
| CMS | :8003 | Content management |
| Correspondence | :8008 | Correspondence lifecycle |
| Task | :8014 | Task management |
| Admin | :8004 | Users, permissions, hierarchy |
Support Services
These services provide supporting functionality:
| Service | Port | Description |
|---|---|---|
| Notification | :8002 | Multi-channel notifications |
| Media | :8005 | File upload and processing |
| Search | :8015 | Full-text search |
| BI | :8006 | Reports and analytics |
| Audit | — | Audit trail logging |
| Profile | :8017 | User profiles |
| File | — | MIME type detection (Python) |
| Syncfusion | :6001 | Document 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
- Quick Start — Set up local development
- System Architecture — Deep dive into architecture
- Gateway Service — Start with the API Gateway