DEV Community

Yonti Testa
Yonti Testa

Posted on

Cómo diseñé y desplegué SocialPulse Core: Arquitectura de microservicios, FastAPI, agentes autónomos y analítica en tiempo real

En el ecosistema actual de desarrollo de software, la capacidad de procesar datos en tiempo real, mantener una arquitectura desacoplada y automatizar flujos mediante inteligencia artificial ya no es un lujo, sino un estándar para sistemas robustos.

Recientemente me propuse un reto arquitectónico: diseñar desde cero SocialPulse Core, una plataforma genérica orientada a la monitorización de indicadores, analítica avanzada y automatización en el tercer sector y la transformación digital.

En este artículo, comparto las decisiones técnicas de diseño, los retos de concurrencia y el stack tecnológico implementado para llevar este proyecto desde el plano lógico hasta un despliegue contenerizado en producción.


🛠️ El Stack Tecnológico y su Por qué

Para garantizar alta mantenibilidad, rendimiento y velocidad de desarrollo, seleccioné un ecosistema moderno:

  • Backend: Python con FastAPI, elegido por su alto rendimiento asíncrono, tipado estricto mediante Pydantic y su documentación interactiva nativa (OpenAPI / Swagger UI).
  • Persistencia: PostgreSQL junto con SQLAlchemy como ORM, garantizando transacciones ACID y un control estricto de esquemas relacionales.
  • Analítica y Visualización: Streamlit y Plotly, permitiendo construir un backoffice ejecutivo con gráficos interactivos avanzados y un refresco de datos fluido.
  • Orquestación e Infraestructura: Docker y Docker Compose, aislando servicios y gestionando dependencias y chequeos de salud automatizados (healthchecks).

⚙️ Retos Clave de Arquitectura Resueltos

1. Agentes Autónomos y Workers en Segundo Plano

Uno de los mayores desafíos fue implementar lógica de negocio autónoma que simulara flujos operativos y auditorías periódicas sin bloquear el hilo principal de las peticiones HTTP de la API.

  • Solución: Se estructuraron hilos concurrentes en segundo plano (Background Workers) que operan de manera independiente.
  • Gestión de Concurrencia: Para evitar fugas de memoria o bloqueos en la base de datos (connection leaks), cada hilo administra de manera estricta y aislada la apertura y cierre de sus propias sesiones de SQLAlchemy contra PostgreSQL.

2. Capa de Analítica en Lenguaje Natural (Copilot)

El sistema incorpora un módulo analítico capaz de responder a consultas institucionales. Esto se logró integrando esquemas de validación de datos estrictos en FastAPI que procesan las solicitudes y devuelven métricas consolidadas en tiempo real al panel ejecutivo.


🚀 Despliegue y Pruebas de Concepto

Para facilitar que cualquier desarrollador o evaluador técnico pueda auditar el código, todo el ecosistema está contenerizado. Con un único comando:

git clone https://github.com/desprogramaci/social-impact-ai-core.git
cd social-impact-ai-core
docker compose up --build
Enter fullscreen mode Exit fullscreen mode

Se levantan de forma sincronizada el servidor de FastAPI (http://localhost:8000/docs), el panel ejecutivo en Streamlit (http://localhost:8501) y la base de datos relacional.

🎯 Conclusión
Desarrollar SocialPulse Core me permitió condensar años de experiencia en arquitectura backend, diseño de APIs y automatización. Si estás buscando un Arquitecto de Software o Desarrollador Full-Stack capaz de liderar proyectos complejos desde la conceptualización hasta el despliegue en producción, este proyecto refleja el nivel de rigor técnico que aporto a los equipos.

Puedes explorar el repositorio completo, el diagrama de arquitectura y la documentación en mi perfil de GitHub:
🔗 GitHub: https://github.com/desprogramaci/social-impact-ai-core

¿Te enfrentas a retos similares en tus proyectos de backend o analítica? ¡Hablemos en los comentarios!

Top comments (0)