⚙️ ETL & Pipelines de datos

Apache Airflow Orquestación

Plataforma de orquestación de flujos de trabajo. Se usa para definir DAGs (Directed Acyclic Graphs) que modelan dependencias entre tareas de extracción, transformación y carga.

Uso

Automatización de pipelines financieros: cálculo de cuentas inactivas, generación de reportes regulatorios y sincronización de datos entre sistemas.

  • DAGs declarativos en Python
  • Reintentos automáticos y alertas
  • Sensores para esperar eventos externos
  • Integración con SSH, HTTP, bases de datos
Python Lenguaje principal

Lenguaje de propósito general con ecosistema robusto para ingeniería de datos. Permite escribir transformaciones complejas, conectores y lógica de negocio de forma expresiva.

Uso

Scripts de transformación, operadores personalizados en Airflow, integración con APIs externas y automatización de procesos batch.

  • pandas para transformaciones tabulares
  • SQLAlchemy para ORM y queries
  • httpx / requests para consumo de APIs
  • Patrones iterator y pipeline nativos
KNIME ETL visual

Plataforma de analítica visual que permite construir pipelines de datos arrastrando nodos. Ideal para transformaciones complejas sin escribir código.

Uso

Flujos de scoring SARLAFT, limpieza de datos financieros y generación de reportes ejecutivos. Se integra con Airflow vía SSH en servidores Windows.

  • Nodos preconstruidos para 300+ operaciones
  • Integración con Python y R
  • Ejecución remota vía CLI
  • Exportación a Excel, CSV, bases de datos
PostgreSQL Base de datos

Base de datos relacional avanzada usada como destino principal de los pipelines ETL. Ofrece tipos de datos ricos, funciones de ventana y extensibilidad.

Uso

Almacén central de datos procesados, staging tables para transformaciones intermedias y fuente de verdad para reportes regulatorios.

  • COPY para carga masiva eficiente
  • CTEs y window functions para analítica
  • Particionado de tablas grandes
  • Índices parciales para queries específicas

🏗️ Arquitectura de software

Arquitectura Hexagonal Patrón estructural

Patrón que aísla la lógica de negocio del mundo exterior mediante puertos y adaptadores. La aplicación no depende de frameworks ni bases de datos concretas.

Uso

Sistemas financieros donde la lógica de cumplimiento (SARLAFT, scoring) debe mantenerse estable aunque cambien los proveedores de datos o canales de entrega.

  • Dominio independiente de infraestructura
  • Fácil sustitución de adaptadores
  • Pruebas unitarias sin mocks complejos
  • Separación clara de responsabilidades
Domain-Driven Design Metodología

Enfoque de diseño que alinea el código con el lenguaje del negocio. Define aggregates, value objects, repositorios y bounded contexts para modelar dominios complejos.

Uso

Modelado de entidades financieras: cuentas, transacciones, contrapartes y reglas de cumplimiento con lenguaje ubiquitario compartido con el negocio.

  • Aggregates como unidades de consistencia
  • Value objects inmutables
  • Bounded contexts para separar dominios
  • Lenguaje ubiquitario con stakeholders
API REST Comunicación

Estilo arquitectónico para comunicación entre servicios usando HTTP. Define recursos, verbos y códigos de estado estándar para interfaces predecibles y documentables.

Uso

Exposición de servicios de validación de listas, scoring y consulta de cuentas. Contratos versionados para integración con sistemas legacy del sector financiero.

  • Versionado de endpoints (/v1, /v2)
  • Documentación con OpenAPI/Swagger
  • Autenticación JWT o API Keys
  • Paginación y filtrado estandarizados
Event-Driven Patrón asíncrono

Arquitectura donde los componentes se comunican mediante eventos. El productor no conoce al consumidor, logrando bajo acoplamiento y escalabilidad horizontal.

Uso

Notificaciones de cambios en cuentas, propagación de resultados de scoring y desencadenamiento de flujos ETL ante eventos de negocio.

  • Desacoplamiento entre productores y consumidores
  • Reintento y dead-letter queues
  • Trazabilidad de eventos en el tiempo
  • Escalado independiente por servicio

🗄️ Bases de datos

PostgreSQL Relacional

Sistema gestor de bases de datos objeto-relacional con soporte ACID completo. Extensible, con tipos avanzados (JSONB, arrays, rangos) y excelente rendimiento en analítica.

Uso

Base de datos principal en proyectos financieros. Almacena transacciones, perfiles de riesgo, resultados de scoring y logs de auditoría regulatoria.

  • JSONB para datos semiestructurados
  • Full-text search nativo
  • Replicación streaming
  • Row-level security para multi-tenancy
SQLAlchemy ORM / Query Builder

Toolkit SQL para Python que ofrece tanto un ORM completo como acceso de bajo nivel con Core. Permite escribir consultas expresivas manteniendo compatibilidad con múltiples motores.

Uso

Capa de acceso a datos en microservicios Python. Manejo de migraciones con Alembic, mapeo de entidades de dominio y construcción de queries dinámicas.

  • ORM declarativo con relaciones lazy/eager
  • Migraciones versionadas con Alembic
  • Connection pooling automático
  • Soporte PostgreSQL, SQLite, MySQL
Modelado relacional Diseño

Técnica de diseño de esquemas de bases de datos basada en la teoría relacional. Normalización hasta 3FN para eliminar redundancias y garantizar integridad referencial.

Uso

Diseño de esquemas para sistemas SARLAFT: entidades de contraparte, operaciones sospechosas, alertas y relaciones entre personas naturales y jurídicas.

  • Normalización 1FN → 3FN
  • Claves foráneas y constraints
  • Índices para query optimization
  • EXPLAIN ANALYZE para diagnóstico
SQL avanzado Consultas

Dominio de SQL más allá de los CRUD básicos: funciones de ventana, CTEs recursivas, agregaciones complejas y optimización de planes de ejecución.

Uso

Reportes de auditoría con rankings, detección de patrones transaccionales anómalos y generación de indicadores de riesgo sobre grandes volúmenes de datos.

  • Window functions: RANK, LAG, LEAD
  • CTEs para queries legibles
  • Subqueries correlacionadas
  • PARTITION BY para analítica por segmento

🔧 Microservicios

Docker Contenerización

Plataforma de contenerización que empaqueta aplicaciones con todas sus dependencias en imágenes reproducibles. Garantiza que el entorno de desarrollo sea idéntico al de producción.

Uso

Contenerización de microservicios Python, Airflow y herramientas de datos. Docker Compose para orquestación local de múltiples servicios interdependientes.

  • Multi-stage builds para imágenes livianas
  • Docker Compose para entornos locales
  • Volúmenes para persistencia de datos
  • Healthchecks para dependencias entre servicios
FastAPI Framework web

Framework Python moderno para construir APIs REST con tipado estático, validación automática y documentación OpenAPI generada al instante.

Uso

Exposición de endpoints de consulta de scoring, validación de contrapartes y webhooks para notificaciones entre sistemas financieros.

  • Validación automática con Pydantic
  • Documentación Swagger/ReDoc incluida
  • Async/await nativo
  • Inyección de dependencias built-in
Python (backend) Lógica de negocio

Python como lenguaje principal para servicios backend: procesamiento de reglas de negocio, integración con bases de datos y orquestación de tareas asíncronas.

Uso

Implementación de motores de reglas SARLAFT, servicios de scoring y workers de procesamiento batch con patrones iterator y pipeline.

  • dataclasses para modelos de dominio
  • asyncio para I/O no bloqueante
  • typing para contratos explícitos
  • contextlib para gestión de recursos
Git & GitHub Control de versiones

Sistema de control de versiones distribuido y plataforma de colaboración. Permite rastrear cambios, colaborar en equipo y automatizar despliegues.

Uso

Gestión de código en todos los proyectos. Flujo de trabajo con ramas por feature, pull requests para revisión y GitHub Actions para CI/CD básico.

  • Branching por feature/fix
  • Pull requests con revisión de código
  • GitHub Actions para automatización
  • Conventional commits para historial limpio

☁️ Cloud — AWS

Amazon S3 Almacenamiento

Servicio de almacenamiento de objetos altamente duradero y escalable. Ideal para guardar archivos de cualquier tamaño con acceso vía HTTP o SDK.

Uso

Almacenamiento de artefactos ETL, reportes regulatorios generados por pipelines, backups de bases de datos y archivos de configuración cifrados.

  • Versionado de objetos
  • Políticas de ciclo de vida
  • Cifrado en reposo (SSE-S3, SSE-KMS)
  • Presigned URLs para acceso temporal
Amazon EC2 Cómputo

Servicio de máquinas virtuales en la nube. Permite elegir sistema operativo, CPU, memoria y red. Base para desplegar aplicaciones que requieren control total del entorno.

Uso

Hosting de instancias de Airflow, servidores de APIs y herramientas de datos que requieren configuración personalizada de sistema operativo.

  • Auto Scaling Groups para elasticidad
  • Security Groups como firewall virtual
  • IAM Roles para acceso a otros servicios
  • User Data para configuración al inicio
AWS Lambda Serverless

Servicio de cómputo serverless que ejecuta código en respuesta a eventos sin gestionar servidores. Se cobra solo por el tiempo de ejecución efectivo.

Uso

Procesamiento de eventos de S3, webhooks de integraciones financieras y funciones de transformación ligeras que se activan por triggers.

  • Triggers desde S3, API Gateway, SQS
  • Cold start minimizado con Provisioned Concurrency
  • Capas (Layers) para dependencias compartidas
  • Integración nativa con CloudWatch Logs
Amazon RDS BD administrada

Servicio de bases de datos relacionales administradas. AWS gestiona backups, parches, replicación y failover automático, reduciendo carga operativa.

Uso

Base de datos PostgreSQL en producción para sistemas financieros. Alta disponibilidad con Multi-AZ y replicas de lectura para reportes analíticos.

  • Multi-AZ para alta disponibilidad
  • Read replicas para escalar lecturas
  • Backups automáticos con point-in-time recovery
  • Cifrado en tránsito y en reposo
IAM Seguridad y acceso

Servicio de gestión de identidades y accesos de AWS. Controla quién puede hacer qué sobre qué recursos, siguiendo el principio de mínimo privilegio.

Uso

Definición de roles para servicios (EC2, Lambda, ECS) y usuarios con permisos granulares. Esencial para entornos financieros con requisitos de auditoría.

  • Principio de mínimo privilegio
  • Roles para servicios (no usuarios root)
  • Políticas inline vs administradas
  • CloudTrail para auditoría de accesos

🚀 CI/CD & Automatización

GitHub Actions CI/CD

Plataforma de integración y despliegue continuo nativa de GitHub. Permite definir workflows en YAML que se disparan ante eventos del repositorio (push, pull request, release, schedule).

Uso

Automatización de pruebas, linting y despliegues para pipelines ETL y servicios. Validación de PRs antes de fusionar a main y publicación de imágenes Docker en registries.

  • Workflows declarativos en YAML
  • Matriz de versiones (Python 3.10, 3.11, 3.12)
  • Secrets cifrados para credenciales AWS
  • Caché de dependencias para builds rápidos
AWS CodePipeline CD nativo AWS

Servicio de entrega continua de AWS que orquesta etapas de build, test y deploy integrándose con CodeBuild, CodeDeploy, Lambda, ECS y otros servicios del ecosistema.

Uso

Despliegue de funciones Lambda y servicios ECS en producción siguiendo flujos auditables. Aprobaciones manuales para entornos productivos en sistemas financieros.

  • Etapas Source → Build → Test → Deploy
  • Integración con CodeBuild y CodeDeploy
  • Aprobaciones manuales para entornos productivos
  • Notificaciones vía SNS y CloudWatch Events
Terraform Infra como código

Herramienta de infraestructura como código (IaC) que permite definir recursos cloud de forma declarativa y versionada. Soporta múltiples providers (AWS, GCP, Azure) con un mismo lenguaje.

Uso

Aprovisionamiento de buckets S3, instancias EC2, roles IAM y RDS para entornos de desarrollo, staging y producción de forma reproducible y auditable.

  • plan/apply para previsualizar cambios
  • Estado remoto en S3 con bloqueo en DynamoDB
  • Módulos reutilizables entre entornos
  • Integración con GitHub Actions para CD
pytest Testing

Framework de pruebas para Python con sintaxis simple, fixtures potentes y un ecosistema amplio de plugins. Estándar de facto para testing en proyectos Python modernos.

Uso

Pruebas unitarias y de integración para pipelines ETL, operadores de Airflow y APIs REST. Se ejecutan automáticamente en cada PR como gate de calidad antes del merge.

  • Fixtures parametrizadas y reutilizables
  • pytest-cov para reportes de cobertura
  • Marcadores para separar unit, integration y e2e
  • Mocks con monkeypatch y unittest.mock