10 decisiones y fuentes - lfnavarroj1/sport-app-platform GitHub Wiki

Decisiones, fuentes y alcance

Fuentes de verdad

Información Fuente operativa
Backlog, sprint, estado y responsables GitHub Projects
Código y pruebas repositorio propietario del componente
Versión de componente archivo de versión, tag y release del componente
Composición entregada manifiesto y tag de sport-app-platform
Evidencia de calidad GitHub Actions y reportes identificados
Arquitectura objetivo y decisiones documentos de arquitectura/ y ADR aceptados
Explicación para interesados esta wiki

Los documentos académicos de entrada y la arquitectura detallada conservan la historia de las decisiones. Cuando una decisión posterior contradice una entrega anterior, prevalece el ADR aceptado más reciente.

Decisiones vigentes

ADR Decisión resumida Estado
ADR-001 Microservicios por dominio Aceptada
ADR-002 CQRS selectivo Aceptada con reservas
ADR-003 Persistencia PostgreSQL por servicio Aceptada
ADR-004 Mensajería con Pub/Sub Aceptada con reservas
ADR-005 GKE, Cloud Run y Cloud SQL Aceptada
ADR-006 BFF independiente para web y móvil Aceptada
ADR-007 Adaptador para Strava Aceptada con reservas
ADR-008 Descubrimiento mediante Kubernetes Aceptada
ADR-009 Hash y JWT centralizados Aceptada con reservas
ADR-012 Angular, Android MVVM e internacionalización Aceptada
ADR-013 FastAPI como framework backend Aceptada
ADR-014 Locust y k6 para rendimiento Aceptada
ADR-015 Outbox y proyector de usuarios Aceptada
ADR-016 Publicador y proyector por dominio CQRS Aceptada
ADR-017 Infraestructura local y GCP Propuesta para ratificación
ADR-018 Kubernetes local con Docker Desktop Aceptada
ADR-019 GitHub Actions para CI/CD Propuesta para ratificación
ADR-020 Repositorio integrador y versiones independientes Aceptada; repositorio, submódulos, Wiki y Project creados; manifiesto de release pendiente
ADR-021 Terraform centralizado en sport-app-platform Aceptada; modificada por ADR-022
ADR-022 Desarrollo local en Kubernetes kubeadm de Docker Desktop y producción en GCP Aceptada; ambiente local verificado
ADR-023 Una instancia PostgreSQL con bases y usuarios por dominio Aceptada
ADR-024 Plan gratuito automático para deportistas y autorización por capacidades Aceptada; backend integrado por PR #7 y #8; adopción web/plataforma pendiente
ADR-025 Inicio y navegación diferenciados por tipo de usuario Aceptada; backend y navegación web integrados; capacidades web y móvil pendientes

Flujo Git acordado

Los cuatro repositorios usan main como rama principal, equivalente a Master en el diagrama histórico, y develop como rama de integración. Cada HU se desarrolla en feature/HUxxx-*; cada sprint aceptado pasa por release/vX.Y.Z; un hotfix parte de main y se reintegra tanto en main como en develop.

Alcance mínimo

El MVP debe demostrar, como mínimo:

  • registro y gestión básica de usuarios;
  • plan gratuito automático para nuevos deportistas y cambio explícito de plan;
  • catálogo completo de planes y capacidades precargado por migraciones versionadas, sin CRUD administrativo;
  • inicios y menús separados para deportista, organizador y profesional; los planes solo modifican la navegación del deportista;
  • habilitación coherente de capacidades por plan en web, móvil y backend;
  • creación, publicación y consulta de servicios;
  • plan de entrenamiento y calendario;
  • inicio y finalización de una práctica móvil;
  • integración entre clientes, BFF y servicios;
  • backend y persistencia desplegados en la nube;
  • atributos de calidad medidos con evidencia;
  • versiones reproducibles de componentes y plataforma.

Una capacidad se reporta como cumplida únicamente cuando tiene recorrido vertical, criterios aceptados, pruebas aplicables, versión identificada y evidencia enlazada.

Organización de repositorios

sport-app-backend, sport-app-frontend y sport-app-movil conservan versiones independientes. sport-app-platform los incorpora como submódulos, centraliza Terraform y fija una combinación compatible por sprint mediante un manifiesto de release.

La Wiki comunica el proyecto, el README orienta el uso del repositorio y GitHub Projects administra el trabajo. Ninguno reemplaza las fuentes ejecutables de código, CI y artefactos.