5 min de lectura

Arquitectura Hexagonal en Python: una guia practica

Como separar logica de negocio e infraestructura para construir sistemas Python mas mantenibles y testeables.

Arquitectura Hexagonal en Python: una guia practica

Cuando una aplicacion crece rapido, mezclar reglas de negocio con detalles de framework o base de datos termina frenando el equipo.

La Arquitectura Hexagonal (o Ports and Adapters) propone una alternativa: mantener el dominio en el centro y conectar infraestructura por interfaces.

Idea central

  • Puertos: contratos que definen lo que el dominio necesita.
  • Adaptadores: implementaciones concretas para base de datos, APIs, colas, etc.

Esto facilita probar logica critica sin depender de servicios externos.

Ejemplo corto en Python

from abc import ABC, abstractmethod

class UserRepositoryPort(ABC):
    @abstractmethod
    def save(self, username: str) -> None:
        ...

class RegisterUserService:
    def __init__(self, repository: UserRepositoryPort):
        self.repository = repository

    def execute(self, username: str) -> None:
        self.repository.save(username)

Con esta estructura, cambiar SQLite por PostgreSQL o integrar otro backend no obliga a reescribir la logica de negocio.

Cierre

Si tu equipo esta sufriendo acoplamiento y dificultad para testear, empezar por un modulo con este patron puede generar mejoras concretas en pocas semanas.

Te gusto este articulo?

Escribinos y conversemos sobre tu contexto.

Iniciar conversacion