Introducción a SwapBits
Tecnologías utilizadas
NestJS
Framework principal para APIs robustas y escalables
MongoDB
Base de datos principal para almacenamiento de datos
Redis
Cacheo y gestión de tareas asíncronas
Docker
Contenerización para deployments consistentes
AWS
Infraestructura cloud con Secrets Manager y Lambda
WebSocket
Comunicación en tiempo real para trading live
Importante - Entorno de Desarrollo
No se recomienda correrlo localmente. Para desarrollo y pruebas, se utiliza una instancia EC2 de AWS con configuraciones específicas y accesos a servicios externos.
Requisitos para el Entorno
Configuración de AWS EC2
Para el correcto funcionamiento, la instancia EC2 debe tener:
- Permisos IAM para acceder a secretos desde AWS Secrets Manager
- Acceso a paquetes y configuraciones externas requeridas
- Networking configurado para comunicación entre servicios
- Docker y Docker Compose instalados y configurados
Cómo levantar servicios en EC2
Desde la raíz del monorepo (2 carpetas arriba de cada docker-compose.yml):
sudo docker compose -f ./services/<nombre-service>/docker-compose.yml build <nombre-service>
sudo docker compose -f ./services/<nombre-service>/docker-compose.yml up -d --remove-orphans
Ejemplo práctico
Para levantar el servicio de autenticación:
sudo docker compose -f ./services/auth/docker-compose.yml build auth
sudo docker compose -f ./services/auth/docker-compose.yml up -d auth
Flujo Recomendado de Implementación
Orden de servicios
Para un funcionamiento óptimo, se recomienda seguir este orden:
auth– Autenticación, creación de usuarios, generación de tokenskyc– Verificación de identidad con Sumsubwebhook– Procesamiento de notificaciones externaswebsocket– Subscripciones en tiempo real- Servicios de trading – Wallets, órdenes, y otros módulos específicos
¿Qué sigue?
Esta es solo la introducción. En las siguientes secciones encontrarás:
- Documentación detallada de cada servicio
- Endpoints completos con ejemplos
- Guías de configuración específicas
- Casos de uso reales y mejores prácticas