Coding
PromptBeginner5 minmarkdown
Markdown Converter
Agent skill for markdown-converter
7
Modo absoluto. Implementar sistema de inventario distribuido localmente:
Sign in to like and favorite skills
Modo absoluto. Implementar sistema de inventario distribuido localmente: ARQUITECTURA: - Store nodes (microservicio por tienda con SQLite) - Central aggregator (servicio global) - Sync worker (background sync cada 5s) - Docker compose para orquestación STACK: - FastAPI (Python) + SQLite - Control optimista con campo version - Outbox pattern para eventos - Transacciones ACID ENDPOINTS CLAVE: - GET/POST /stores/{id}/inventory/{sku} - POST /stores/{id}/inventory/{sku}/adjust - GET /aggregator/sku/{sku}/availability
Tabla inventory: sku, store_id, quantity, reserved, version, updated_at Tabla outbox: id, sku, delta, type, created_at, applied
Implementar: - Verificación version == client_version antes de ajustar - Transacción SQLite SERIALIZABLE - HTTP 409 para conflictos - Incremento automático de version
Push-based: - Store envía outbox cada 5s al aggregator - Aggregator aplica y responde con reconciliaciones - Retry con backoff exponencial - Persistencia de eventos no aplicados
# Test de concurrencia (100 requests simultáneos) python scripts/test_concurrent_sales.py # Test de integración pytest tests/test_simple_integration.py -v # Verificar solo 1 request exitoso, resto HTTP 409 make quick-test
Error: RuntimeError: no running event loop Solución: Convertir sync functions a async/await
Prompt: "puedes revisar todos los archivos y ordenarlos mejor?" Resultado: Estructura src/store y src/aggregator
Prompts recientes: 1. "Puedes actualizar este archivo para que sea mas sencillo de ejecutar?" → run.md reducido de 335 a 120 líneas (64% más corto) 2. "Puedes hacer este mas sencillo?" → CONTRIBUTING.md reducido de 478 a 139 líneas (71% más corto) 3. "Puedes actualizar este archivo con la informacion?" → prompts.md actualizado con info reciente ESTRATEGIA: - Inicio rápido en 3-6 pasos - Eliminar opciones redundantes - Comandos copy-paste directos - Referencias a docs completas
# Control optimista con version if current_version != client_version: raise HTTPException(409, detail="Version conflict")
# GET /aggregator/metrics { "total_skus": 7, "total_stores": 3, "pending_events": 0, "total_reconciliations": 6111 }
# Resultado esperado: Solo 1 éxito, resto 409 Estado inicial: cantidad=100, version=1 10 requests concurrentes → 1 ✅ ÉXITO, 9 ⚠️ CONFLICTO Estado final: cantidad=99, version=2
Este proyecto demuestra uso efectivo de GenAI para desarrollar sistemas distribuidos complejos con alta calidad y documentación clara.