<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Architecture on DevFlow · Desarrollador Python Django Freelance</title>
    <link>https://dev-flow.io/es/categories/architecture/</link>
    <description>Recent content in Architecture on DevFlow · Desarrollador Python Django Freelance</description>
    <generator>Hugo</generator>
    <language>es</language>
    <lastBuildDate>Fri, 05 Jun 2026 00:00:00 +0200</lastBuildDate>
    <atom:link href="https://dev-flow.io/es/categories/architecture/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CQRS en Django: un read model desnormalizado sin Event Sourcing</title>
      <link>https://dev-flow.io/es/posts/cqrs-pragmatico-django/</link>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/es/posts/cqrs-pragmatico-django/</guid>
      <description>CQRS pragmático separa los modelos de escritura y lectura cuando divergen. Sin dogma, sin Event Sourcing, solo un read model alimentado por eventos.</description>
    </item>
    <item>
      <title>Idempotency Keys: evitar que un cliente pague dos veces</title>
      <link>https://dev-flow.io/es/posts/patron-idempotency-keys-api/</link>
      <pubDate>Thu, 04 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/es/posts/patron-idempotency-keys-api/</guid>
      <description>Una clave de idempotencia convierte un POST en una operación segura de reproducir. El cliente puede reintentar sin riesgo de duplicado tras un timeout.</description>
    </item>
    <item>
      <title>Patrón Inbox: consumir eventos sin reproducirlos dos veces</title>
      <link>https://dev-flow.io/es/posts/patron-inbox-consumidor-idempotente/</link>
      <pubDate>Wed, 03 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/es/posts/patron-inbox-consumidor-idempotente/</guid>
      <description>El patrón Inbox garantiza que un evento recibido varias veces se procesa una sola vez. La contraparte natural del Outbox del lado consumidor.</description>
    </item>
    <item>
      <title>Transactional Outbox: publicar eventos sin perder la coherencia</title>
      <link>https://dev-flow.io/es/posts/patron-transactional-outbox/</link>
      <pubDate>Tue, 02 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/es/posts/patron-transactional-outbox/</guid>
      <description>El patrón Transactional Outbox garantiza que cada evento publicado a Kafka corresponde a un estado persistido en base. Una sola transacción SQL atómica.</description>
    </item>
    <item>
      <title>Patrón Saga: gestionar transacciones distribuidas sin rollback</title>
      <link>https://dev-flow.io/es/posts/patron-saga-transacciones-distribuidas/</link>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/es/posts/patron-saga-transacciones-distribuidas/</guid>
      <description>El patrón Saga divide una transacción distribuida en pasos compensables. Cada paso deshace su efecto cuando uno posterior falla, sin perder coherencia.</description>
    </item>
    <item>
      <title>Capa anti-corrupción: aislar tu código de las APIs externas</title>
      <link>https://dev-flow.io/es/posts/capa-anti-corrupcion/</link>
      <pubDate>Wed, 27 May 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/es/posts/capa-anti-corrupcion/</guid>
      <description>La capa anti-corrupción (ACL) aísla tu lógica de negocio de las APIs externas. Un único punto de traducción, del JSON crudo a objetos tipados y estables.</description>
    </item>
    <item>
      <title>Connascencia Python: 9 tipos de acoplamiento explicados</title>
      <link>https://dev-flow.io/es/posts/connascencia-python/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/es/posts/connascencia-python/</guid>
      <description>La connascencia clasifica el acoplamiento en 9 tipos distintos. Descubre cada forma con un ejemplo Python concreto y cómo decidir cuáles reducir primero.</description>
    </item>
  </channel>
</rss>
