Software Architecture: The Hard Parts
Neal Ford
Will Larson
Robert C. Martin
Andrew Harmel-Law
Rüdiger Striemer