Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
<div><p>As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are now taking an interest in high-level software design patterns such as hexagonal/clean architecture, event-driven architecture, and the strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn't always straightforward.</p><p>With this hands-on guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexity-and get the most value out of their test suites.</p><p>Each pattern is illustrated with concrete examples in beautiful, idiomatic Python, avoiding some of the verbosity of Java and C# syntax. Patterns include:</p><ul><li>Dependency inversion and its links to ports and adapters (hexagonal/clean architecture)</li><li>Domain-driven design's distinction between entities, value objects, and aggregates</li><li>Repository and Unit of Work patterns for persistent storage</li><li>Events, commands, and the message bus</li><li>Command-query responsibility segregation (CQRS)</li><li>Event-driven architecture and reactive microservices</li></ul></div>