Additional
Resources
4 Easy Ways to Learn More and Stay Current
Programming Newsletter
Get programming related news and content delivered weekly to your inbox.
oreilly.com/programming/newsletter
Free Webcast Series
Learn about popular programming topics from experts live, online.
webcasts.oreilly.com
O’Reilly Radar
Read more insight and analysis about emerging technologies.
radar.oreilly.com
Conferences
Immerse yourself in learning at an upcoming O’Reilly conference.
conferences.oreilly.com
©2015 O’Reilly Media, Inc. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. #15305
Mark Richards
Software Architecture
Patterns
Understanding Common Architecture
Patterns and When to Use
em
978-1-491-92424-2
[LSI]
Software Architecture Patterns
by Mark Richards
Copyright © 2015 O’Reilly Media, Inc. All rights reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA
95472.
O’Reilly books may be purchased for educational, business, or sales promotional use.
Online editions are also available for most titles (http://safaribooksonline.com). For
more information, contact our corporate/institutional sales department:
800-998-9938 or corporate@oreilly.com.
Editor: Heather Scherer
Production Editor: Colleen Lobner
Copyeditor: Amanda Kersey
Interior Designer: David Futato
Cover Designer: Ellie Volckhausen
Illustrator: Rebecca Demarest
February 2015: First Edition
Revision History for the First Edition
2015-02-24: First Release
2015-03-30: Second Release
The O’Reilly logo is a registered trademark of O’Reilly Media, Inc.
Soware Architec‐
ture Patterns, the cover image, and related trade dress are trademarks of O’Reilly
Media, Inc.
While the publisher and the author have used good faith efforts to ensure that the
information and instructions contained in this work are accurate, the publisher and
the author disclaim all responsibility for errors or omissions, including without limi‐
tation responsibility for damages resulting from the use of or reliance on this work.
Use of the information and instructions contained in this work is at your own risk. If
any code samples or other technology this work contains or describes is subject to
open source licenses or the intellectual property rights of others, it is your responsi‐
bility to ensure that your use thereof complies with such licenses and/or rights.
Table of Contents
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
1.
Layered Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Pattern Description 1
Key Concepts 3
Pattern Example 5
Considerations 7
Pattern Analysis 8
2.
Event-Driven Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Mediator Topology 11
Broker Topology 14
Considerations 17
Pattern Analysis 18
3.
Microkernel Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Pattern Description 21
Pattern Examples 23
Considerations 24
Pattern Analysis 25
4.
Microservices Architecture Pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Pattern Description 27
Pattern Topologies 29
Avoid Dependencies and Orchestration 32
Considerations 33
Pattern Analysis 34
iii