Appearance
Oktuple Backend Documentation
Overview
Oktuple is a comprehensive, real-time project management platform designed to be the most efficient and scalable solution for modern development teams. The system provides intelligent data synchronization, seamless integration capabilities, and real-time collaboration features.
Vision Summary
Oktuple aims to deliver a robust, real-time project management system that enables teams to:
- Collaborate Effectively: Real-time updates and seamless communication
- Scale Efficiently: Handle growing teams and complex project structures
- Integrate Seamlessly: Connect with existing tools and workflows
- Search Intelligently: Find information quickly across all project data
- Customize Freely: Adapt the system to specific team needs
The platform targets sub-second response times, 99.9% uptime, and provides a modern microservices architecture with horizontal scaling capabilities. Built with TypeScript for type safety, Hono for performance, and Prisma for database efficiency, Oktuple represents a new paradigm in project management systems.
Architecture Principles
- Microservices: Separate concerns between project management and data sync
- Event-Driven: Real-time updates through WebSocket and logical replication
- Type Safety: Full TypeScript implementation
- Scalability: Horizontal scaling capabilities
- Fault Tolerance: Robust error handling and recovery
- Performance: Caching and optimized search capabilities
- Real-time Architecture: WebSocket-based live updates with logical replication
- Search Engine: Typesense for comprehensive search capabilities
System Components
Core Services
PMN - Project Management API
PMN is a modern, scalable backend API built with:
- Framework: Hono (lightweight, fast web framework)
- Database: PostgreSQL with Prisma ORM
- Cache: Redis for performance optimization
- Search: Elasticsearch for full-text search capabilities
- Language: TypeScript for type safety
- Authentication: Casdoor integration
- Real-time: WebSocket support for live updates
Key Features:
- Project hierarchy management (ENodes)
- Issue tracking and management
- Role-based access control
- Template system for project structures
- File attachment handling
- Comment and collaboration features
- Reporting and analytics
- Excel import/export capabilities
Syncer - Data Synchronization Service
Syncer is a specialized service that provides:
- Real-time Sync: PostgreSQL logical replication to Elasticsearch and Typesense
- Search Engine Support: Simultaneous sync to multiple search engines
- WebSocket Integration: Real-time notifications
- Fault Tolerance: Automatic reconnection and error handling
- Queue Management: Redis-based message queuing with BullMQ
Supported Data Types:
- Project nodes (ENodes)
- Issues and tasks
- Addons and metadata
- User relationships and permissions
External Services & Integrations
Identity & Access Management
- Casdoor: IAM (Identity and Access Management) service providing user authentication, authorization, and single sign-on capabilities
File Management
- Clourage: File storage service handling file uploads, storage, and retrieval for project attachments and documents
Communication & Notifications
- Novu: Notification service managing multi-channel notifications including email, SMS, and push notifications
- Reminder Service: Dedicated service for scheduling and managing project reminders and deadline notifications
- Sure Send: Email/SMS service with failover mechanisms ensuring reliable message delivery
Workspace Management
- Bounteco: Workspace management service handling team organization, workspace configuration, and user management across different project environments
Technology Stack
Backend (PMN)
- Runtime: Node.js 18+
- Framework: Hono
- Database: PostgreSQL + Prisma
- Cache: Redis
- Search: Elasticsearch
- Validation: Zod
- Testing: Vitest
- Code Quality: ESLint + Prettier
Data Sync (Syncer)
- Runtime: Node.js 18+
- Database: PostgreSQL with logical replication
- Search Engine: Typesense
- Queue: Redis + BullMQ
- Real-time: WebSocket
- Testing: Vitest
Documentation Structure
This documentation is organized into several key areas:
- Architecture: System design and component relationships
- Security: Authentication, authorization, and data protection
- Frontend: UI considerations and integration points
- Testing: Quality assurance and testing strategies
- Future Roadmap: Planned features and improvements
For detailed information about each component, please refer to the specific sections in this documentation.