Documentación Técnica
Tecnologías utilizadas
NestJS
Framework principal del backend
MongoDB
Base de datos principal
Redis
Cache y mensajería
Docker
Contenedorización y despliegue
AWS
Infraestructura cloud
Documentación Privada
Esta sección contiene información técnica interna del sistema SwapBits. El contenido aquí presentado está diseñado para:
- Desarrolladores del equipo que necesitan entender la arquitectura
- Nuevos integrantes que requieren onboarding técnico
- Mantenimiento futuro del sistema
- Decisiones técnicas y su documentación
No debe ser compartida públicamente sin autorización.
¿Qué encontrarás aquí?
Esta documentación técnica está organizada en 8 categorías principales con 20+ documentos comprehensivos:
Índice de Documentación
1. Visión General del Sistema
Comprensión completa del ecosistema SwapBits y su arquitectura.
- System Overview - Visión general del ecosistema completo
- System Architecture Diagram - Diagramas Mermaid de arquitectura
- External APIs - Integraciones con servicios externos (Bybit, Manteca, Bridge, Didit, Avenia, etc.)
2. Microservicios
Documentación detallada de todos los microservicios del sistema.
Core Services
- Core Services
- Auth Service - Autenticación y autorización
- User Service - Gestión de usuarios
- Wallet Service - Gestión de wallets multi-blockchain
- Bank Service - Operaciones bancarias
Business Services
- Business Services
- Exchange Service - Trading y swaps
- KYC Service - Verificación de identidad
- Admin Service - Panel de administración
Communication Layer
- Communication Layer
- WebSocket Service - Comunicación en tiempo real
- Webhook Service - Notificaciones blockchain
Blockchain Infrastructure
- Blockchain Monitors
- Solana Monitor
- Ethereum Monitor
- BSC Monitor
- Tron Monitor
- Bitcoin Monitor
Shared Code
- Shared Packages
- 30+ MongoDB Schemas compartidos
- Guards, Interceptors, Middleware
- Analytics, Chat, Rate Limiting
3. AWS Infrastructure
Servicios cloud, serverless y gestión de infraestructura.
-
- CreateWallet Functions (11 blockchains)
- SendHotWallet Functions (Solana, Polkadot, TON)
- Utilidades (Encrypt/Decrypt, Didit Integration)
-
- Gestión centralizada de secretos
- JWT secrets, API keys, database credentials
- Hot wallet private keys
- Rotación automática y seguridad
-
- Configuración de instancias de producción
- VPC, Security Groups, networking
- Auto-scaling y load balancing
- Deployment scripts y disaster recovery
4. Flujos de Negocio
Documentación de flujos end-to-end del sistema.
- User Registration to First Transaction - Journey completo del usuario
- Wallet Operations - Crear, importar, enviar, recibir, eliminar wallets
- Trading & Exchange - Swaps internos, integración Bybit, órdenes
- Banking Operations - Depósitos, retiros fiat, KYC, AML
5. Comunicación
Patrones de comunicación entre servicios y clientes.
- Inter-Service Communication - HTTP REST, Redis Pub/Sub, eventos
- WebSocket Real-time - Socket.io, rooms, namespaces, scaling
6. Arquitectura de Datos
Estrategias de datos, schemas y migraciones.
- Database Architecture - MongoDB schemas, indexing, sharding, backups
- Migrations System - Sistema de migraciones, rollback, testing
7. Seguridad
Implementaciones de seguridad en todas las capas.
- Security Architecture - JWT, encryption, rate limiting, fraud detection, audit logging
8. Deployment & Operations
Despliegue, monitoreo y mantenimiento.
- Deployment & Maintenance - CI/CD, Docker, monitoring, backups, disaster recovery
Guías Rápidas
- System Overview - Empezar aquí para entender el ecosistema completo
- System Architecture - Ver diagramas de arquitectura
- Microservices - Comprender los servicios core
- User Journey - Ver el flujo completo de un usuario
- Security - Entender las medidas de seguridad críticas
Para Entender un Flujo Específico
Operaciones de Usuario:
Trading:
Desarrollo:
Para Operaciones y Deployment
Stack Tecnológico
Tecnologías Principales
Backend:
- NestJS 11.x - Framework principal (TypeScript)
- Node.js 18+ - Runtime
- TypeScript - Lenguaje
Databases:
- MongoDB 7.x - Base de datos principal (NoSQL)
- Redis 7.x - Cache, sessions, Pub/Sub
Infrastructure:
- Docker - Containerización
- AWS Lambda - Funciones serverless
- AWS Secrets Manager - Gestión de secrets
- Nginx - Load balancer
Real-time:
- Socket.io - WebSocket server
- Redis Pub/Sub - Event streaming
Blockchain:
- Ethers.js - EVM chains (Ethereum, BSC, Polygon)
- @solana/web3.js - Solana
- TronWeb - Tron
- Bitcoin Core RPC - Bitcoin
- TONConnect - TON
- @polkadot/api - Polkadot
- XRP Ledger - Ripple
External Services:
- Bybit API - Exchange integration
- Plaid - Bank verification
- Didit - KYC/identity verification
Convenciones del Proyecto
Estándares de Código
Naming Conventions:
- Services:
camelCase-userService,walletService - Controllers:
PascalCase-UserController,AuthController - DTOs:
PascalCase+Dtosuffix -CreateUserDto,LoginDto - Schemas:
PascalCase-User,Wallet,Transaction - Interfaces:
PascalCase+Iprefix -IUser,IWallet - Enums:
PascalCase-TransactionStatus,WalletType
File Structure:
service-name/
├── src/
│ ├── controllers/ # HTTP endpoints
│ ├── services/ # Business logic
│ ├── dtos/ # Data Transfer Objects
│ ├── interfaces/ # TypeScript interfaces
│ ├── guards/ # Auth guards
│ ├── middleware/ # Custom middleware
│ └── index.ts # Entry point
├── Dockerfile
├── package.json
└── tsconfig.json
Git Workflow:
main- Produccióndevelop- Developmentfeature/*- Nuevas featuresfix/*- Bug fixeshotfix/*- Hotfixes urgentes
Transferencia de Conocimiento
Documentación para el Futuro
Esta documentación fue creada con el objetivo de transferir conocimiento del sistema completo a futuros desarrolladores. Incluso si los desarrolladores originales ya no están disponibles, cualquier desarrollador competente debería poder:
- Entender la arquitectura completa del sistema en pocas horas
- Hacer cambios seguros siguiendo los patrones establecidos
- Diagnosticar y resolver problemas usando las guías de troubleshooting
- Desplegar y mantener el sistema en producción
- Escalar y evolucionar el sistema según nuevas necesidades
Esta documentación es tu mejor compañero. Léela, mantenla actualizada, y compártela con todo el equipo.
Contribución a la Documentación
Documentación Viva
Esta documentación es un documento vivo que debe evolucionar con el sistema:
Cuando actualizar:
- [✓] Agregas un nuevo microservicio
- [✓] Implementas un nuevo flujo de negocio
- [✓] Cambias la arquitectura de seguridad
- [✓] Actualizas el stack tecnológico
- [✓] Modificas patrones de comunicación
- [✓] Descubres un bug crítico o gotcha
Cómo contribuir:
- Edita directamente los archivos
.mdendocs/docs/technical/ - Usa Mermaid para diagramas (
mermaidcode blocks) - Sigue la estructura establecida en cada categoría
- Agrega ejemplos prácticos y casos de uso
- Incluye troubleshooting cuando sea relevante
- Haz commit con mensaje descriptivo
Mantén consistencia:
- Usa los mismos componentes de UI (
InfoCard,TechStack) - Sigue la misma estructura de secciones
- Mantén el tono técnico pero accesible
- Agrega links a documentos relacionados
Contacto y Soporte
Para preguntas técnicas o dudas sobre la arquitectura:
- Documentación principal: Este sitio
- Código fuente: GitHub Repository
- Issues técnicos: GitHub Issues
- Discusiones: GitHub Discussions