Microservices for Java Architects
This book is a companion for the Java EE Architect’s Handbook that details Microservices Architectures. This book will define microservices and provide an overview of costs and benefits. As with the handbook, I’ll go on to address architecture, design, and implementation concerns specific to microservices architecture.
Given the published success stories from Netflix, Amazon, and many organizations; companies are increasingly adopting microservices architecture. For organizations that are heavily invested in Java technologies, writing microservices using Java is a natural progression. This book is your guide to designing and implementing microservices in Java.
As Java architects, it’s important to understand what microservices are, when to use them, and the value they provide. We need to understand the design and implementation considerations for using microservices so we can guide a development team through microservice development efforts. We also need to understand the various pitfalls of using microservices and the common implementation mistakes that can erode the benefits of adopting microservices.
While this book is a companion to the Java EE Architect’s Handbook, it is also separate and self-contained. As with the handbook, I'll guide architects through the entire development process, including how to effectively design service contracts. I cover in detail the coding patterns that are needed to make microservice libraries effective showing you examples along the way. I also provide guidance on how to refactor large, complex web applications into smaller and more manageable microservices, and how to make microservices easier to maintain and support.
What you’ll learn
- What microservices architecture is and the advantages and disadvantages of using it.
- How to refactor large applications into a microservice library.
- How to design microservice contracts effectively.
- Design patterns that make microservices efficient and maintainable.
- Best practices and common mistakes for implementing microservices.
- Guidance on how to manage microservice development teams.
Who this book is for
- Java EE application and enterprise architects interested in using microservices to provide business value.
- Java EE technical leads implementing microservices.
- Java EE senior Java developers working on microservice teams.
Table of Contents
- How this book is organized
- Description of common resources
- About the Author
- Chapter 1: Microservices Defined
- Contrast with traditional application architectures
- What is a Monolith?
- Microservice Library Organization
- The Benefits of Using Microservices Architecture
- The Disadvantages of Using Microservices Architecture
- Microservices Architecture Compared to SOA
- Refactoring into a Microservices Architecture
- Chapter 2: Design Considerations for Microservices Architecture
- Service Boundaries
- Designing to accommodate failure
- Designing for Performance
- Designing for Integrity
- Managing Service Versions
- Adapter Services for Third Party Products
- Common Enterprise Code for Microservices
- Chapter 3: Cross-cutting Concerns for Microservices
- Health Checks
- Performance Metrics and Alerts
- Resource Consumption Alerts and Responses
- Logging and Error Handling
- Posting Change Events
- Packaging Options for Microservices
- Transaction Tracking
- Exception Handling for Remote Calls
- Service Security
- Contract Testing Procedures and Requirements
- Chapter 4: Microservice Usage Guidelines
- When to Use Microservices Architecture
- Warning signs that your traditional application is too large
- Where’s the Marketing Fluff?
- Best Practices and Common Mistakes
- Why Now?
- Future Directions for Modularity
- Chapter 5: Managing Microservice Development
- Prerequisites for Microservices Architecture Adoption
- Management Benefits for Microservices Architecture Adoption
- Further Reading
About Derek Ashmore
Derek Ashmore is a senior technology expert with over 25 years of experiences in a wide variety of technologies and industries; and he is currently focusing on microservice architectures, cloud computing, and performance tuning. His past roles include Application Architect, Cloud Architect, Project Manager, and many others.
Get in touch
To retain consulting services of the author for your Java project, please contact firstname.lastname@example.org
Derek blogs at derekashmore.com. Additionally, he can be reached the following ways: