Módulo 2: Common AI Architectures

Proyecto del Módulo 2: Architecture Comparison Document

Descripción del proyecto

Este es el segundo entregable de la guía. Vas a producir un Architecture Comparison Document que evalúa las tres arquitecturas (monolito, microservicios, event-driven, y combinaciones híbridas) para un sistema AI hipotético, aplicando el decision framework de la cápsula 07. Este documento es lo que un tech lead presentaría a su CTO cuando propone arquitectura para un nuevo sistema — no un análisis académico, sino un artifact con datos, scoring, y recomendación defendible.

A diferencia del proyecto de M01 (que enfocó en cómo documentar arquitectura), este proyecto enfoca en qué arquitectura elegir y por qué. La estructura del documento es similar pero el foco está en la comparación rigurosa de opciones. Vas a usar todo lo aprendido en M02: criterios específicos AI, patterns por arquitectura, consideraciones AI-específicas, y el framework de decisión.

Como en M01, este documento es portfolio piece y precursor del Capstone Architecture Design (M8). En M8 la decisión arquitectónica para el AI-Powered Knowledge Assistant será real; este proyecto es el ensayo con un caso hipotético pero suficientemente complejo para generar trade-offs reales.


Recap del módulo

Antes del proyecto, recapitula M02:

  • Cápsula 01: Introducción y sesgo a combatir (pro-microservicios cultural)
  • Cápsula 02: Monolito AI — cuándo gana, cómo estructurarlo bien
  • Cápsula 03: Microservicios AI — cuándo se justifican, anti-patterns
  • Cápsula 04: Event-driven — patterns AI-específicos, queue-based LLM, batch processing
  • Cápsula 05: Hybrid architectures — el patrón real, 3 archetypes comunes
  • Cápsula 06: AI-specific considerations — cold start, context, LLM duplication, GPU, vector DB co-location
  • Cápsula 07: Decision framework — 7 criterios, pesos, scoring estructurado

El proyecto integra todo. Es la aplicación end-to-end del framework con M02/02-06 como insumos de criterios.


El sistema hipotético: especificaciones

Contexto del producto

Trabajas en una scale-up de healthcare tech (~150 employees) que está construyendo un nuevo producto: MedQ — una plataforma SaaS B2B que da a hospitales un asistente AI para responder preguntas de medical staff sobre protocolos clínicos, drug interactions, y políticas internas. Tu tech lead te pide diseñar la arquitectura.

Requirements funcionales

El sistema debe:

  • Recibir queries de medical staff via interfaces múltiples: web app interna, mobile app (iOS/Android), Slack-like chat de Microsoft Teams (clientes hospitales usan Teams)
  • Responder con citations: cada respuesta debe citar protocols/policies fuente con link al documento original
  • Soportar multi-tenancy: cada hospital es un tenant separado con sus propios documentos, permissions, configuración
  • Manejar tipos de queries diversos: queries de protocolos (RAG sobre PDFs/Word docs), queries de drug interactions (calls a APIs externas como UpToDate), queries de admin policies (RAG sobre wiki interna)
  • Audit trail completo: regulatory compliance requires logging exhaustivo de cada query, response, tools usados, y decisión médica resultante (si aplica)
  • Soportar feedback loop: medical staff puede marcar respuestas como correctas/incorrectas, que feed al training de evals
  • Real-time updates: cuando hospital sube nuevos protocolos, deben estar disponibles dentro de 1 hora

Requirements no-funcionales

  • Latencia: p99 ≤ 6 segundos (clínicos en emergencias necesitan respuesta rápida)
  • Disponibilidad: 99.95% uptime (regulación de healthcare exige alta confiabilidad)
  • Volumen objetivo:
    • Year 1: 50 hospitales × 200 staff × 5 queries/día = 50k queries/día
    • Year 2: 200 hospitales × 200 staff × 5 queries/día = 200k queries/día
  • Latencia de ingestion: documentos disponibles en RAG dentro de 1 hora de upload
  • Multi-region: US-East, US-West, EU (data residency requirements)
  • Compliance: HIPAA en US, GDPR en EU
  • Costo: budget AI $30k/mes year 1, escalable a $100k/mes year 2

Restricciones

  • Equipo: 18 engineers organizados en 4 sub-teams
    • AI Core team (5 engs): RAG, agent, LLM
    • Platform team (4 engs): infra, DB, auth, multi-tenancy
    • Integrations team (4 engs): web app, mobile, MS Teams
    • Compliance team (3 engs): audit, security, encryption
    • 2 engineers free-floating senior
  • Stack existente: Python (predominante), TypeScript para frontend
  • Cloud: AWS multi-region
  • Tiempo: 9 meses para production launch

Estructura del documento esperado

Tu Architecture Comparison Document debe tener esta estructura:

# Architecture Comparison Document
# MedQ — AI Healthcare Q&A Platform

## 1. Executive Summary
[1-2 páginas: contexto, criterios principales, recomendación]

## 2. System Context (C4 Level 1)
[Diagrama Context con todos los actores y sistemas externos]

## 3. Constraints & Decision Criteria
[Sección que extrae constraints del context y los mapea a criterios del framework]

## 4. Architecture Options Considered

### 4.1 Option A: Modular Monolith with Async Workers
[Diagrama Container, descripción, evaluación de criterios]

### 4.2 Option B: Microservices Architecture
[Diagrama Container con servicios separados, evaluación]

### 4.3 Option C: Event-driven Architecture
[Diagrama con event backbone, evaluación]

### 4.4 Option D: Hybrid Architecture (Recommended)
[Diagrama hybrid pragmático, evaluación]

## 5. Decision Framework Application
[Tabla completa con scoring, pesos, conclusión]

## 6. Recommendation & Rationale
[ADR completo formato Nygard]

## 7. AI-Specific Considerations Applied
[Cómo cada consideración de M02/06 se maneja en la arquitectura recomendada]

## 8. Implementation Roadmap
[Phases para construir la arquitectura, dependencies, milestones]

## 9. Risks & Mitigations
[Top 5 riesgos identificados con mitigation plans]

Ejemplo parcial: scoring del sistema

Para ayudarte a calibrar profundidad, aquí va scoring parcial del sistema MedQ aplicando el framework:

Sección 5 parcial: Decision Framework Application

## 5. Decision Framework Application

### Scoring del sistema MedQ

| Criterio | Score | Justificación |
|----------|-------|---------------|
| Team size | 3 | 18 engineers en 4 sub-teams |
| Latency | 3 | p99 6s, dentro de rango sync |
| Scaling diff | 4 | Embedding worker (batch GPU-intensive) vs API (low CPU); Multi-tenancy requires per-tenant scaling |
| Stack uniformity | 2 | Python predominante, TypeScript para frontend (esperado, no architectural concern) |
| Madurez | 2 | Pre-launch, MVP fase, iterating boundaries |
| Aislamiento | 5 | HIPAA + GDPR + multi-tenancy require strong isolation between tenants y entre tenant data |
| Async | 4 | Doc ingestion async (1h SLA), audit trails async, feedback loop async |

### Pesos del contexto MedQ

| Criterio | Peso | Razón |
|----------|------|-------|
| Team size | 4 | 18 engineers en sub-teams permite microservicios moderados |
| Latency | 4 | Clinical UX no negociable |
| Scaling diff | 4 | Multi-tenant + GPU embedding diferencia es significativa |
| Stack uniformity | 2 | Python uniforme para backend |
| Madurez | 3 | MVP pero con plan claro |
| Aislamiento | 5 | HIPAA + GDPR no negociables |
| Async | 4 | Múltiples flows async naturales |

### Conclusión de scoring

- **Monolito puro**: scores en team size (3), aislamiento (5) y scaling diff (4) son demasiado altos. Monolito puro NO es viable.
- **Microservicios extensivos**: scores apuntan en esa dirección, pero team size 3 sugiere que microservicios extremos serían over-engineering para 18 engineers. 5-7 microservicios bien delimitados, no 20.
- **Event-driven backbone**: async requirement (4) y aislamiento (5) lo justifican parcialmente, pero algunos flows clave son síncronos.
- **Híbrido**: la combinación apropiada — modular monolith para core AI flow + 3-5 microservicios para componentes específicos + event-driven para flows naturalmente async + multi-region deployment para compliance.

**Decisión: Híbrido — Modular Core + Targeted Microservices + Event-driven Backbone**

Sección 6 parcial: ADR

## 6. Recommendation & Rationale

### ADR-MEDQ-001: Architecture Style Selection

## Status: Accepted

## Date: 2026-05-08

## Context

[Resumen ejecutivo del scoring + constraints relevantes]

## Decision

Adoptar arquitectura híbrida con tres estilos combinados:

**Core (Modular Monolith en Python)**:
- Query Service: orquestrating user queries
- RAG Pipeline: retrieval + reranking + prompt building
- Agent Service: tool use, multi-step reasoning
- LLM Client: wrapping Anthropic/OpenAI APIs
- Cache Layer: Redis for response cache + semantic cache

**Microservicios extraídos**:
- Embedding Service (Python, GPU): batch document processing, GPU-intensive
- Integration Service (TypeScript): MS Teams, web app, mobile API gateway
- Audit Service (Python): compliance logging con tamper-proof storage
- Tenant Management Service (Python): multi-tenancy admin, configuration
- (Possibly) Drug Interaction Service: APIs externas con caching agressive

**Event-driven flows**:
- Document ingestion queue (SQS)
- Query analytics events (Kafka)
- Feedback loop events (Kafka)
- Audit log events (with at-least-once delivery)

**Multi-region**:
- US-East (primary), US-West (read replica), EU (data residency)
- Per-region deployment of monolith + critical services

## Alternatives Considered

[Por cada alternativa: razón de descarte específica]

**Pure monolith**: scaling diff y compliance isolation requirements no se cumplen. Single instance no permite per-region data residency.

**Pure microservices (10+ servicios)**: 18 engineers no pueden mantener 15+ servicios efectivamente. Operational overhead supera beneficios.

**Pure event-driven**: latency UX critical (p99 6s) requiere flows síncronos para query/response.

## Consequences

**Positivas**:
- Compliance via service isolation (Audit, Tenant Management)
- Scaling differentiated (Embedding GPU vs others)
- Equipos con autonomy moderado (Integration team, Compliance team)
- Async donde necesario, síncrono donde latencia importa
- Multi-region viable

**Negativas (trade-offs)**:
- Complexity operacional moderada (5-7 servicios en lugar de 1-2)
- Distributed tracing obligatorio (no opcional)
- 4-6 weeks adicionales de setup vs monolito puro
- Communication overhead entre teams para cross-service changes

## Review trigger

Reevaluar arquitectura si:
- Volumen excede 500k queries/día (puede justificar más microservicios)
- Equipo crece a 40+ engineers (microservicios más extensivos)
- Compliance regulations cambian significativamente
- Calidad/Latency targets cambian

Tu trabajo: completar el documento

Tienes la spec del sistema, scoring parcial, y ejemplo de ADR. Tu deliverable es completar el documento aplicando todo M02.

Entregables específicos

  1. Executive Summary completo (1-2 páginas)
  2. System Context (C4 Level 1) con diagrama y prosa
  3. Constraints & Decision Criteria completo (todos los constraints listados)
  4. 4 architecture options con diagramas Container y evaluación honesta de cada una:
    • Option A: Modular Monolith with Async Workers
    • Option B: Microservices Architecture
    • Option C: Event-driven Architecture
    • Option D: Hybrid (recomendado)
  5. Decision Framework Application completo con scoring y pesos
  6. Recommendation & Rationale (ADR completo)
  7. AI-Specific Considerations aplicadas a la arquitectura elegida
  8. Implementation Roadmap con phases ordenadas
  9. Risks & Mitigations (top 5 riesgos)

Rúbrica de auto-evaluación

Tu documento aprueba si cumple todos los siguientes:

Estructura (Capa A — higiene):

  • Las 9 secciones presentes y rotuladas
  • 4 diagramas C4 Container (uno por opción)
  • ADR sigue formato estándar Nygard
  • Markdown válido, links funcionales

Calidad pedagógica (Capa B):

  • Scoring honesto: cada criterio con score 1-5 y justificación específica al sistema
  • Pesos contextuales: pesos diferenciados (no todos en 3-4), justificados al contexto MedQ
  • Cada arquitectura evaluada en su mérito: no straw-men de las descartadas
  • Híbrido detallado: si recomiendas híbrido (esperado), especifica qué va a cada estilo y por qué
  • AI considerations aplicadas: las 5 (cold start, context, LLM dup, GPU, vector DB) abordadas explícitamente
  • Trade-offs honestos: minimum 3 negativos en la decisión
  • Implementation roadmap: phases con dependencies, no una lista plana

Para alguien externo:

  • Un CTO de healthcare tech puede leer y aprobar/desaprobar con confianza
  • Implementation team puede empezar a trabajar sin más diseño
  • Decisiones son defensibles ante audit de compliance

Tiempo estimado

  • Executive Summary + Context: 30-45 min
  • Constraints & Criteria: 30 min
  • 4 architecture options + diagrams: 90-120 min
  • Decision Framework Application: 45 min
  • ADR completo: 45 min
  • AI considerations + Roadmap + Risks: 60-90 min

Total: 5-7 hrs para un documento sólido. Si toma menos, posiblemente saltaste profundidad.


Anti-patterns a evitar

1. Strawmen de las arquitecturas no elegidas. "Microservicios obviamente no funciona porque son complejos" — sin scoring honesto, es propaganda. Cada arquitectura merece evaluación rigorosa antes de descartarla.

2. Decision framework en 5 minutos. Scoring rápido sin reflexión es ejercicio sin valor. Si todos tus scores son 3 o 4 sin justificación, framework no produjo información.

3. Híbrido sin specificity. "Vamos híbrido" no es decisión — es categoría. Tu híbrido debe tener componentes específicos asignados a estilos específicos.

4. AI considerations como afterthought. Las 5 consideraciones (M02/06) son parte del decision criteria, no una sección al final que repite obviedades.

5. Implementation roadmap como wishlist. Tareas listadas al azar sin orden. Roadmap real tiene dependencies, milestones, y criterio de "done" por phase.

6. Risks vagos. "Riesgo: la arquitectura puede fallar" no es risk. Risks reales: "Si Anthropic API tiene outage de 1+ hora, el sistema completo cae porque no tenemos fallback configurado. Mitigation: implementar fallback a OpenAI gpt-4o-mini con calidad menor pero degradación graceful."


Resumen y siguiente paso

Este proyecto integra todo M02:

  • Decision framework se aplica con datos reales del sistema MedQ
  • 4 arquitecturas evaluadas rigurosamente, no descartadas a priori
  • Hybrid recommendation con specificity de qué va a cada estilo
  • AI considerations aplicadas explícitamente
  • ADR completo que un CTO puede aprobar con confianza

El documento es:

  • Tu segundo entregable de portfolio
  • La base para deliverables similares en M3-M7
  • El precursor del Capstone Architecture Design (M8)

Antes de avanzar al Módulo 3, deberías tener:

  • Architecture Comparison Document completo (~10-15 páginas)
  • 4 arquitecturas evaluadas con scoring framework
  • ADR formato estándar con trade-offs honestos
  • Implementation roadmap accionable
  • Top 5 risks con mitigations

Si tu documento cumple la rúbrica, completaste M02 con éxito. Si algo falla, vuelve a la cápsula correspondiente.

En el Módulo 3 — Scaling Fundamentals — vas a tomar la arquitectura recomendada y preguntarte: "¿cómo la escalamos?" La conexión es directa — la estrategia de scaling depende de la arquitectura elegida. Un monolito se escala diferente que microservicios. Event-driven tiene consideraciones de scaling distintas (queue depth, consumer count). Vas a aprender horizontal vs vertical scaling, identificación de bottlenecks AI-específicos (LLM inference, embedding computation, vector search), stateless design para AI, y auto-scaling triggers apropiados (queue depth, request rate) en lugar de solo CPU/memory. Phase 1 (Architectural Foundations) cierra cuando combines el M01 (cómo pensar) + M02 (qué arquitectura) + M03 (cómo escalarla) en un mental model completo.


Recursos