Architecture Patterns with Python. Enabling Test-Driven Development, Domain-Driven Design, and Event