Una colección de algoritmos optimizados y estructuras de datos implementadas en TypeScript, diseñadas para resolver problemas reales de manera eficiente y escalable.
- Algoritmos de Streaming: Procesamiento de grandes datasets sin cargar todo en memoria
- Estructuras de Datos Optimizadas: Maps, Sets y Heaps para operaciones O(1) y O(log n)
- Análisis de Complejidad: Documentación detallada de complejidades temporales y espaciales
- Escalabilidad: Diseñados para manejar datasets que exceden la memoria disponible
- TypeScript: Type safety y mejor experiencia de desarrollo
Analizador de streaming para identificar los top N clientes más frecuentes sin límites de memoria.
Características:
- ✅ Procesamiento por lotes configurable
- ✅ Limpieza automática de memoria
- ✅ Algoritmo streaming O(n) para datasets masivos
- ✅ Generador de datos sintéticos realistas
Casos de uso:
- Análisis de e-commerce
- Sistemas de CRM
- Big Data analytics
Gestor optimizado de rutas de transporte público con operaciones O(1) para consultas frecuentes.
Características:
- ✅ Búsqueda de rutas por parada en O(1)
- ✅ Conexiones entre paradas en O(min(R1, R2))
- ✅ Operaciones CRUD eficientes
- ✅ Estadísticas del sistema en tiempo real
Casos de uso:
- Sistemas de transporte público
- Aplicaciones de navegación
- Análisis de conectividad urbana
Propuesta de arquitectura escalable para aplicaciones de delivery usando microservicios.
Características:
- ✅ Arquitectura de microservicios desacoplados
- ✅ API Gateway centralizado
- ✅ Sistema de eventos con colas de mensajes
- ✅ Cache distribuido con Redis
- ✅ Almacenamiento híbrido (SQL + NoSQL + Object Storage)
Casos de uso:
- Plataformas de delivery (Uber Eats, Rappi)
- Aplicaciones de e-commerce grandes
- Sistemas distribuidos de alta disponibilidad
- Arquitecturas orientadas a eventos
API REST optimizada para gestión de pedidos con cálculo automático de descuentos y tarifas.
Características:
- ✅ Cálculo automático de tarifas de entrega por estrato
- ✅ Sistema de descuentos configurables
- ✅ Validación de esquemas con Elysia
- ✅ Estimación de tiempos de entrega
Casos de uso:
- Plataformas de e-commerce
- Sistemas de delivery
- Gestión de inventarios
- Runtime: Bun (alta performance)
- Lenguaje: TypeScript
- Framework Web: Elysia
- Linting: Biome
- Testing: Bun test
- Arquitectura: Monorepo con workspaces
- Bun >= 1.0
- Node.js >= 18 (opcional, para compatibilidad)
- TypeScript >= 5.0
git clone https://github.com/Dailaim/scalable-data-structures
cd scalable-data-structures
bun install
cd public-transport-routes
bun install
bun run index.ts
cd top-customers-analyzer
bun install
bun run index.ts
cd api
bun install
bun dev # Servidor en modo desarrollo
import { PublicTransportRouteManager } from './public-transport-routes-manager';
const manager = new PublicTransportRouteManager();
// Agregar paradas
manager.addStop({ id: 'stop1', name: 'Centro Comercial' });
manager.addStop({ id: 'stop2', name: 'Universidad' });
// Crear ruta
manager.createRoute({
id: 'route1',
name: 'Línea Express',
type: 'bus',
isActive: true,
stopIds: ['stop1', 'stop2']
});
// Buscar rutas por parada - O(1)
const routes = manager.getRoutesByStop('stop1');
import { ECommerceAnalyticsSystem } from './top-customers-analyzer';
const system = new ECommerceAnalyticsSystem(100000); // 100K clientes
// Analizar top 10 clientes de los últimos 30 días
const topCustomers = await system.analyzeTopCustomers(30, 10);
system.displayResults(topCustomers);
# Iniciar servidor
cd api && bun dev
# Crear pedido
curl -X POST http://localhost:3000/api/orders \
-H "Content-Type: application/json" \
-d '{
"customerId": "customer1",
"products": [{"id": "prod1", "quantity": 2}],
"deliveryAddress": {
"street": "Calle 123",
"city": "Bogotá",
"neighborhood": "Chapinero",
"stratum": 4
}
}'
📋 Componentes principales:
1. API Gateway (centraliza requests)
2. Microservicios independientes:
- Usuarios, Restaurantes, Órdenes, Pagos, Repartidores
3. Colas de mensajes (RabbitMQ/SQS)
4. Bus de eventos (Kafka)
5. Cache distribuido (Redis)
6. Storage híbrido (PostgreSQL + S3 + Mongo)
🔄 Flujo de ejemplo - Crear pedido:
Cliente → API Gateway → Servicio Órdenes → Evento 'order_created'
→ Matching asigna repartidor → Notificaciones → Cache actualizado
# Ejecutar todos los tests
bun test
# Test por módulo
cd api && bun test
- Búsqueda por parada: O(1)
- Conexiones entre paradas: O(min(R1, R2))
- Memoria: O(R + S) donde R=rutas, S=paradas
- Tiempo: O(n) para n transacciones
- Memoria: O(batch_size + min(u, 200K)) controlada automáticamente
- Escalabilidad: Datasets ilimitados con memoria bounded
- Cálculo de pedido: O(P) donde P=productos
- Validación: O(1) con schemas precompilados
- Throughput: ~10K requests/segundo con Bun
- Escalabilidad: Microservicios independientes escalables
- Fiabilidad: Colas de mensajes + reintentos automáticos
- Mantenibilidad: Servicios desacoplados y especializados
- Performance: Cache distribuido + almacenamiento optimizado
algorithmic-optimization-toolkit/
├── api/ # REST API para gestión de pedidos
│ ├── src/modules/ # Módulos organizados por dominio
│ ├── tests/ # Tests unitarios
│ └── Dockerfile # Containerización
├── public-transport-routes/ # Gestor de rutas de transporte
├── top-customers-analyzer/ # Analizador de clientes frecuentes
├── arquitecture/ # Propuesta de arquitectura de microservicios
│ └── README.md # Diseño completo para apps de delivery
└── package.json # Configuración monorepo
- Fork el proyecto
- Crea una rama feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add: AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
- Seguir las reglas de Biome configuradas
- Incluir tests para nuevas funcionalidades
- Documentar complejidades algorítmicas
- Añadir ejemplos de uso
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.
Dailaim - GitHub
- Inspirado en algoritmos de competitive programming
- Optimizaciones basadas en casos de uso reales
- Enfoque en eficiencia para aplicaciones de producción
- Arquitectura de Microservicios para Delivery
- Optimización de Rutas de Transporte Público
- Algoritmos de Streaming para Big Data Analytics
- Documentación de API REST de Ordenes
⭐ Si este proyecto te fue útil, ¡no olvides darle una estrella!# scalable-data-structures