GuíaAvanzado
Guía de Patrones SQL para APIs en Producción
Lleva tus APIs FastAPI de "funciona en dev" a SaaS multi-tenant que escala con los patterns SQL que toda app en producción necesita. Esta guía cubre cursor pagination (17x más rápido que OFFSET en pages profundas), soft deletes con índices parciales que no destruyen performance, audit logs con triggers PostgreSQL e history tables, multi-tenancy con Row-Level Security, zero-downtime migrations con expand-contract y Alembic, optimistic locking con SQLAlchemy, schema versioning backward-compatible y bulk operations con COPY. Diseñada para backend Python devs senior que ya completaron PostgreSQL & SQLAlchemy y Database Performance, y necesitan los patterns que separan a un dev que sabe optimizar queries de uno que sabe diseñar sistemas que escalan en producción multi-tenant.
- 64
- lecciones
- 8
- módulos
- Inglés · Español
- disponible en
- Gratis
- acceso
Resultados
Lo que vas a poder hacer
- Implementar cursor y keyset pagination con SQLAlchemy 2.0 (17x más rápido que OFFSET en pages profundas) con composite cursors para sort secundario
- Modelar soft deletes con índices parciales y evitar los anti-patterns que destruyen performance (incluyendo cuándo usar archive tables o partitioning)
- Diseñar audit logs con triggers PostgreSQL, history tables o event sourcing ligero, eligiendo el approach correcto por caso
- Implementar multi-tenancy correctamente con Row-Level Security (RLS), schema-per-tenant o shared schema — con trade-offs cuantificados
- Ejecutar migraciones zero-downtime con expand-contract, `CREATE INDEX CONCURRENTLY`, `lock_timeout` y `statement_timeout` usando Alembic en producción
- Manejar concurrent updates con optimistic locking (version columns) y traducir `StaleDataError` a HTTP 409 con feedback útil para el cliente
- Versionar schemas con cambios backward-compatible, deprecation strategies y contract testing
- Hacer bulk operations a velocidad de PostgreSQL: `COPY` con `copy_expert`, batch inserts, upserts con `ON CONFLICT DO UPDATE`, con benchmarks medidos
- Construir una API SaaS multi-tenant production-ready que consolida los siete patterns con una migration zero-downtime ejecutada en vivo
Antes de empezar
Qué necesitas traer
Es para ti si...
- Backend Python devs senior con apps FastAPI en producción que han chocado con problemas reales: pagination lenta en pages profundas, multi-tenancy mal hecha que filtró datos, migrations que rompieron en deploy
- Ingenieros que completaron las guías PostgreSQL & SQLAlchemy y Database Performance y necesitan los patterns que vienen después de "sabes optimizar queries"
- Ingenieros construyendo SaaS multi-tenant que necesitan decidir arquitectura de aislamiento (RLS vs schema-per-tenant vs shared schema)
- Tech leads escribiendo guidelines para equipo: cómo deben hacerse pagination, soft deletes y migrations
- Devs preparándose para entrevistas senior en compañías SaaS donde se pregunta cursor pagination, RLS y zero-downtime migrations
- Cualquiera que haya tenido que ejecutar un `ALTER TABLE` en producción a las 3am y prefiere no repetir la experiencia
Requisitos y materiales
- Guía PostgreSQL & SQLAlchemy completada (o equivalente: SQLAlchemy 2.0 ORM con relationships, Alembic básico, ACID, isolation levels)
- Guía Database Performance & Query Tuning completada (o equivalente: EXPLAIN ANALYZE, indexing avanzado, N+1 con SQLAlchemy)
- App FastAPI funcional con datos reales (>100k filas en al menos una tabla) para practicar
- PostgreSQL 14+ instalado localmente o en Docker (algunos features de RLS requieren 14+)
- Familiaridad con `psql`, Alembic CLI y dependency injection de FastAPI
- Comodidad con async/await en Python
Contenido
El temario, módulo por módulo
Abre cualquiera para ver sus lecciones.
- Introducción: Pagination Patterns para APIs en producción
- OFFSET pagination y sus límites
- Cursor pagination: fundamentos
- Cursor pagination en FastAPI
- Keyset pagination y cuándo usarla
- Pagination bidireccional y cursores opacos
- Pagination con filtros y ordering dinámico
- Entrega del módulo 1: Cursor Pagination en TaskFlow
- Soft Deletes Correctos — Introducción al módulo
- Soft delete vs hard delete: trade-offs
- Implementación de `deleted_at` en PostgreSQL
- Soft delete en SQLAlchemy: mixins y eventos
- Índices parciales para soft deletes
- Anti-patterns: `WHERE deleted_at IS NULL` everywhere
- Alternativas: archive tables y particionamiento
- Entrega del módulo 2: Soft Delete en TaskFlow
- Módulo 5: Zero-Downtime Migrations
- Por qué las migrations rompen producción
- Expand-contract pattern
- `CREATE INDEX CONCURRENTLY` y otras operaciones no bloqueantes
- `lock_timeout` y `statement_timeout` en migrations
- Alembic en producción: patrones seguros
- Blue-green y database rollback strategies
- Entrega del módulo 5: migration zero-downtime en vivo
- Módulo 6: Optimistic Locking + Schema Versioning
- Optimistic vs pessimistic locking: cuándo gana cada uno
- Version columns en SQLAlchemy 2.0: implementación nativa
- `StaleDataError` → HTTP 409 con cuerpo informativo
- `If-Match` header y HTTP 412: optimistic concurrency a nivel HTTP
- Schema versioning: cambios backward-compatible vs breaking
- Deprecation strategy: headers, métricas, comunicación
- Mini-proyecto: TaskFlow con optimistic locking + 3 versiones del schema
- Módulo 7: Bulk Operations
- Los 4 approaches con benchmarks reales
- `COPY` profundo con asyncpg
- `bulk_insert_mappings` y sus limitaciones
- Upserts atómicos con `ON CONFLICT`
- Bulk upserts con tabla temporal: el patrón canónico
- Manejo de errores robusto + streaming para datasets gigantes
- Mini-proyecto: `POST /tasks/bulk` con benchmarks
- Módulo 8: Proyecto Final — TaskFlow API
- Setup inicial: FastAPI + SQLAlchemy + Alembic
- Multi-tenancy con Row-Level Security + auth mock
- Tasks CRUD + cursor pagination + soft delete
- Audit log con triggers + optimistic locking
- Bulk endpoint + migration zero-downtime en vivo
- Tests completos: aislamiento, integración, benchmarks
- Documentación final + cierre de la guía
Dónde encaja
Esta guía es parte de algo más grande
Se estudia dentro de estos programas, con acompañamiento y fechas.
Dudas frecuentes
Lo que suele preguntarse
Sin límite. Es una guía gratuita: entras cuando quieras, las veces que quieras.
No. Los módulos están ordenados de menos a más, pero puedes saltar al que necesites. Tu progreso se guarda por lección.
Lo que haga falta está en «Qué necesitas traer», arriba. Si no aparece nada ahí, puedes empezar desde cero.
En el grupo de WhatsApp del Club, y cada quince días hay un live con un instructor donde se resuelven dudas en vivo.
No. Esta guía es autoguiada y sin fechas. El bootcamp es en vivo, por cohorte, con entregas que alguien revisa.
Empieza cuando quieras
Lo que dicen los estudiantes
Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.
Aún no hay reseñas aprobadas.
¡Sé el primero en compartir tu experiencia!