Architecture Patterns with Python by Bob Gregory