<!-- Generated mechanically from Architecture Patterns with Python AsciiDoc source. -->
<!-- Source file: book.asciidoc. Do not edit book text here; regenerate from upstream if needed. -->

# Architecture Patterns with Python

This file is the Markdown table of contents for the local reference copy.

## Front Matter

- [Preface](preface.md)
- [Introduction: Why Do Our Designs Go Wrong?](introduction.md)

## Part 1

- [Part 1 Intro](part1.md)
- [Chapter 1: Domain Model](chapter_01_domain_model.md)
- [Chapter 2: Repository](chapter_02_repository.md)
- [Chapter 3: Interlude: Abstractions](chapter_03_abstractions.md)
- [Chapter 4: Service Layer](chapter_04_service_layer.md)
- [Chapter 5: TDD in High Gear and Low Gear](chapter_05_high_gear_low_gear.md)
- [Chapter 6: Unit of Work](chapter_06_uow.md)
- [Chapter 7: Aggregates](chapter_07_aggregate.md)

## Part 2

- [Part 2 Intro](part2.md)
- [Chapter 8: Domain Events and a Simple Message Bus](chapter_08_events_and_message_bus.md)
- [Chapter 9: Going to Town on the MessageBus](chapter_09_all_messagebus.md)
- [Chapter 10: Commands](chapter_10_commands.md)
- [Chapter 11: External Events for Integration](chapter_11_external_events.md)
- [Chapter 12: CQRS](chapter_12_cqrs.md)
- [Chapter 13: Dependency Injection](chapter_13_dependency_injection.md)

## End Matter

- [Epilogue: How Do I Get There from Here?](epilogue_1_how_to_get_there_from_here.md)
- [Appendix A: Recap Table](appendix_ds1_table.md)
- [Appendix B: Project Structure](appendix_project_structure.md)
- [Appendix C: A Major Infrastructure Change, Made Easy](appendix_csvs.md)
- [Appendix D: Django](appendix_django.md)
- [Appendix F: Validation](appendix_validation.md)
