For complex applications, the microservice architecture offers many attractive advantages, as described in the previous article "Microservice architecture: A brief overview and why you should use it in your next project". Designing microservices is a very difficult task. And if microservices are not well designed, they will fail. Developers and designers should have a clear understanding of microservice architectures before designing. Nowadays, developers can use stack overflow, online courses, or blog posts to delve deeper. Read some books carefully to complement your online courses, conferences, and blog posts and avoid the pitfalls of microservice design.
This section lists five books that explain how you can better understand the microservices architecture and use it in real projects.
1.Building Microservices
Sam Newman was one of the first pioneers of microservices architecture and master of microservices. In this innovative book, he explains the principles of the microservice architecture as well as the design, provision, testing and observation of the microservice architecture. He also highlighted the potential pitfalls of how microdesign and monolith applications can evolve to microdevices. In addition, Sam Newman's work describes complex subjects in an elegant, clear, and unexpectedly simple manner. This book is a must for anyone interested in participating in microservices.
2. Microservices Patterns
Chris Richardson is a well-known and respected microservices expert and runs one of the most popular microservices blogs. In the book "Microservices Model" Chris Richardson describes the advantages of the microservices architecture and the disadvantages and challenges of microservices. For every challenge, he offers different approaches to the problem and their advantages and disadvantages. The book also summarizes all of the patterns used in the area of microdevices.
3.Microservices — A Practical Guide
Eberhard Wolff is a well-known German software architect. He has written several German and English books on microservices. One of the main challenges of microservices is that it is difficult to provide different solutions to different problems and to choose the right solution. This book "Microservices-A Practical Guide" is very practical because it offers different solutions to different problems, including advantages and disadvantages. This book also spends a lot of time with cloud-native micro services. Docker, Kubernetes, Service Mesh, etc.
4.Implementing Domain-Driven Design
The biggest challenge of microservices is to split complex business applications into other loosely coupled services. Fortunately, domain-based design can help here. Domain-Centric Design advocates software design in two phases: strategic design and tactical design. In the strategic design, IT and business areas work together to find core domains, supporting domains and an ubiquitous assignment of language and context. With tactical design, IT divides each area into smaller components. Entities, objects of value, collections and collection roots. Therefore, the domain-based design helps to find the boundaries and components of micro services. To learn more about domain-based design, I prefer Vaughn Vernon's "Red Book", which prefers Eric Evans' original Blue Book, which uses a more readable modern technology stack (like CQRS).
5.Designing Data-Intensive Applications
Another difficult task for microservices is to divide the central data storage into pure microservice data storage and then to exchange data / messages between microservices. In addition, the microservices architecture promotes the use of data stores suitable for microservices, so that a multiservice database can be set up. Designing effective micro services therefore requires a thorough understanding of modern data storage, data transformation and data sharing. Martin Kleppmann, perhaps the top specialist in the field, has written a monumental book: "Designing data-intensive applications: the great idea of reliable, scalable and maintainable systems. After all, Martin Kleppmann deals with everything that has to do with data, including SQL NoSQL databases, data storage formats, data transfer formats and message queues: This book is the most comprehensive and comprehensive book on modern data management and a must for microservices architects.