<?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 · Développeur Python Django Freelance</title>
    <link>https://dev-flow.io/categories/architecture/</link>
    <description>Recent content in Architecture on DevFlow · Développeur Python Django Freelance</description>
    <generator>Hugo</generator>
    <language>fr</language>
    <lastBuildDate>Fri, 05 Jun 2026 00:00:00 +0200</lastBuildDate>
    <atom:link href="https://dev-flow.io/categories/architecture/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CQRS en Django : read model dénormalisé sans Event Sourcing</title>
      <link>https://dev-flow.io/posts/cqrs-pragmatique-django/</link>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/posts/cqrs-pragmatique-django/</guid>
      <description>CQRS sépare les modèles d&amp;#39;écriture et de lecture quand ils divergent. Pas de dogme, pas d&amp;#39;Event Sourcing, juste un read model dénormalisé alimenté par events.</description>
    </item>
    <item>
      <title>Idempotency Keys : empêcher un client de payer deux fois</title>
      <link>https://dev-flow.io/posts/pattern-idempotency-keys-api/</link>
      <pubDate>Thu, 04 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/posts/pattern-idempotency-keys-api/</guid>
      <description>Une clé d&amp;#39;idempotence transforme un POST en opération sûre à rejouer. Le client peut retry sans risque de doublon, même après un timeout réseau.</description>
    </item>
    <item>
      <title>Pattern Inbox : consommer des événements sans les rejouer deux fois</title>
      <link>https://dev-flow.io/posts/pattern-inbox-consumer-idempotent/</link>
      <pubDate>Wed, 03 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/posts/pattern-inbox-consumer-idempotent/</guid>
      <description>Le pattern Inbox garantit qu&amp;#39;un événement reçu plusieurs fois n&amp;#39;est traité qu&amp;#39;une seule fois. Le pendant naturel de l&amp;#39;Outbox côté consommateur.</description>
    </item>
    <item>
      <title>Transactional Outbox : publier des événements sans perdre la cohérence</title>
      <link>https://dev-flow.io/posts/pattern-transactional-outbox/</link>
      <pubDate>Tue, 02 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/posts/pattern-transactional-outbox/</guid>
      <description>Le pattern Transactional Outbox garantit qu&amp;#39;un événement publié correspond toujours à un état persisté. Une seule transaction SQL pour la base et le broker.</description>
    </item>
    <item>
      <title>Pattern Saga : gérer les transactions distribuées sans rollback</title>
      <link>https://dev-flow.io/posts/pattern-saga-transactions-distribuees/</link>
      <pubDate>Mon, 01 Jun 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/posts/pattern-saga-transactions-distribuees/</guid>
      <description>Le pattern Saga découpe une transaction distribuée en étapes compensables. Chaque étape sait défaire son effet en cas d&amp;#39;échec d&amp;#39;une étape suivante.</description>
    </item>
    <item>
      <title>Couche anti-corruption : isoler son code des APIs externes</title>
      <link>https://dev-flow.io/posts/couche-anti-corruption/</link>
      <pubDate>Wed, 27 May 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/posts/couche-anti-corruption/</guid>
      <description>La couche anti-corruption (ACL) isole votre logique métier des APIs externes. Un seul point de traduction, du JSON brut vers des objets typés et stables.</description>
    </item>
    <item>
      <title>Connascence Python : les 9 types de couplage expliqués</title>
      <link>https://dev-flow.io/posts/connascence-python/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0200</pubDate>
      <guid>https://dev-flow.io/posts/connascence-python/</guid>
      <description>La connascence classe le couplage en 9 types distincts. Découvrez chaque forme avec un exemple Python concret et comment arbitrer entre elles.</description>
    </item>
  </channel>
</rss>
