Inicio/Blog/Diseño de API nearshore
Entrega Distribuida de Software

Ingeniería nearshore: diseño de APIs entre equipos de EE. UU. y América Latina

La superposición horaria acorta feedback, pero la proximidad no crea significado compartido. Los equipos distribuidos entregan APIs confiables cuando las decisiones se convierten en contratos, ejemplos, tests, ownership y evidencia que sigue clara después de la reunión.

Usa el overlap para decisiones, no status

Reserva las horas compartidas para comportamiento ambiguo, tradeoffs, seguridad, incidentes y reviews difíciles. Status, contexto, evidencia y handoffs rutinarios deben ser asíncronos.

La reunión termina con contrato actualizado, decisión, owner, condición de cierre y preguntas. De otro modo el siguiente huso horario repite la conversación.

Contrato de productoActor, caso, outcome, autorización, lifecycle, edge cases, restricciones regionales y aceptación.
Contrato APIOpenAPI, schemas, ejemplos, errores, paginación, idempotencia, cuotas, webhooks y compatibilidad.
Contrato de entregaOwner, reviewer, CODEOWNERS, CI, entornos, rollout, observabilidad, rollback y soporte.
Contrato de colaboraciónHorarios, overlap, respuesta, idioma, decision log, escalamiento e incident handoff.

Contract-first es un acuerdo ejecutable

OpenAPI ofrece contrato independiente del lenguaje. Define auth, operaciones, schemas, ejemplos, errores y entornos. Genera clientes y mocks cuando sirve, con validación runtime y contract tests.

También documenta retries, duplicados, visibilidad, consistencia eventual y campos inmutables. Estas reglas se prueban en CI.

Construye un workflow único

Workflow nearshore de API
01 EnmarcarDefine outcomeUsuario, evento, ownership, datos, región, éxito, falla y non-goals.
02 EspecificarPublica contratoOpenAPI/AsyncAPI, schemas, ejemplos, Problem Details, auth, paginación, idempotencia y SLO.
03 DesafiarReview entre rolesIngeniería EE. UU./LatAm, producto, seguridad, datos, operaciones y dominio.
04 PrototiparMock de ambos ladosProvider y consumer usan ejemplos, clients, fixtures, sandbox y contract tests.
05 ImplementarTrabaja tras fronterasPRs pequeños, ownership, feature flags, migrations, adapters y decisiones.
06 VerificarCI produce evidenciaLint, compatibilidad, unit, integración, contrato, seguridad, locale, migration y carga.
07 LiberarRollout con ownershipCanary, dashboard, alertas, runbook, soporte, rollback y comunicación regional.
08 AprenderMide flujo completoLead time, espera, rework, defectos, adopción, SLO, incidentes y gaps.

Separa formato de máquina y locale

Usa timestamps RFC 3339 con offset y timezone nombrada cuando importa la hora civil. Dinero necesita currency y decimal explícitos. Idioma usa BCP 47 y la visualización bibliotecas CLDR.

No envíes valores formateados ni fechas ambiguas. IDs fiscales, códigos postales, estados, teléfonos, nombres y direcciones son campos de dominio.

Inglés en código no elimina localización

El vocabulario técnico compartido ayuda, pero UI, soporte, ejemplos, términos legales y de dominio necesitan review regional. Portugués brasileño, español latinoamericano y supuestos estadounidenses no son equivalentes.

Separa IDs de máquina de labels, almacena locale, usa message catalogs y prueba plural, moneda y fecha.

Estandariza errores

RFC 9457 define Problem Details. Usa problem type estable, status, title, detalle seguro, referencia, field violations, retryability y códigos. No obligues al consumer a parsear prosa.

Define retry, corrección, reauth, conflict y support. La UI localiza desde códigos estables.

La compatibilidad es frontera de equipo

Prefiere cambios aditivos. Remover, cambiar tipos o semántica, exigir campos, alterar defaults o endurecer validación es breaking hasta demostrar lo contrario.

Deprecation tiene owner, reemplazo, telemetry, guía, fecha y rollback. Contract diff y consumer tests bloquean roturas.

Review asíncrono necesita paquete completo

El PR incluye problema, contract diff, ejemplos, seguridad/privacidad, migration, tests, evidencia, rollout, rollback, preguntas y decisión exacta.

Usa draft PR temprano, CODEOWNERS y checks requeridos. Mantén PRs pequeños.

Ownership explícito por capa

Define owners para comportamiento, API, datos, SDK, infra, seguridad, reglas regionales y producción. El owner del repo no necesariamente decide negocio.

Escalamiento sigue impacto y experiencia, no geografía.

CI como compañero asíncrono

CI responde validez de spec, compatibilidad, ejemplos, clients, contract tests, migrations, locales y seguridad antes del review.

Los checks requeridos deben ser deterministas y rápidos; suites lentas pueden correr en paralelo o en staged.

Matriz de review y entrega

Artefacto/decisiónOwnerReviewerGateFalla
Lifecycle y edge casesProducto/dominio.Operaciones regionales e ingeniería.Cenarios y state-machine tests.Equipos implementan significados diferentes.
OpenAPI y ejemplosProvider.Consumers y seguridad.Lint, schema, diff y client build.Mismatches aparecen tarde.
Locale, tiempo, dinero e identidadDominio/localización.Representantes EE. UU./PT-BR/ES.Fixtures de locale, timezone, decimal y dirección.Código correcto falla regionalmente.
Auth y autorizaciónSeguridad/plataforma.Provider, consumer, privacidad y operaciones.Policy tests, negativos, secret scan y threat delta.Acceso depende de supuestos ocultos.
Migration y compatibilidadDatos/API.Consumers afectados.Migration, rollback, diff y old clients.Release rompe otra región.
Release e incident readinessService owner.Soporte, operaciones y stakeholders.Canary, dashboards, alert test y rollback.API sale sin responder o evidencia.

Handoff transmite estado

Incluye objetivo, evidencia, PR/branch, entorno, blockers, decisiones, riesgo, owner, próximo paso y expectativa. “Trabajé en el endpoint” no alcanza.

En incidentes: severidad, regiones, inicio, baseline, timeline, hipótesis, cambios, mitigación, comandos, métricas y próximo check.

Mide flujo y outcomes

Mide contrato listo hasta primer éxito, espera de review, change failure, defectos de contrato, rollback, detección/recuperación, reducción de soporte y adopción regional.

Commits, líneas, reuniones y horas online premian visibilidad.

Protege la frontera organizacional

Least privilege en repo, cloud, base y APIs. Credenciales separadas, identidad corta, auditoría, datos de test protegidos y revocación rápida. No compartas secrets de producción en chat.

Define residencia, transferencia, logging y soporte. Usa fixtures saneados y datos sintéticos.

Prueba conducta regional

Prueba daylight saving en EE. UU., países sin la misma transición, fin de mes, feriados, UTC, decimales, monedas, acentos, nombres, direcciones, IDs fiscales, teléfonos y errores localizados.

Contract tests corren en provider y consumer; sandbox debe incluir estados reales.

Qué construiría

Crearía un template con OpenAPI, JSON Schema, ejemplos, catálogo Problem Details, ADRs, ownership, clients, contract tests, fixtures regionales, CI, release checklist, dashboards, runbook y handoff.

Un portal mostraría owners, consumers, versiones, deprecations, SLOs, cambios, decisiones, sandbox e incidentes.

El principio de diseño

Nearshore funciona cuando el overlap acelera juicio y los artefactos durables transportan ejecución. No se trata de estar todos online, sino de hacer visibles comportamiento, ownership, evidencia y próximo paso.