Book Image

Practical Microservices

By : Umesh Ram Sharma
Book Image

Practical Microservices

By: Umesh Ram Sharma

Overview of this book

<p>A microservice architecture helps you build your application as a suite of different services. This approach has been widely adopted as it helps to easily scale up your application with reduced dependencies. This way if a part of your application is corrupted, it can be fixed easily thereby eliminating the possibility of completely shutting down your software. This book will teach you how to leverage Java to build scalable microservices. You will learn the fundamentals of this architecture and how to efficiently implement it practically.</p> <p>We start off with a brief introduction to the microservice architecture and how it fares with the other architectures. The book dives deep into essential microservice components and how to set up seamless communication between two microservice end points. You will create an effective data model and learn different ways to test and deploy a microservices. You will also learn the best way to migrate your software from a monolith to a microservice architecture.</p> <p>Finishing off with monitoring, scaling and troubleshooting, this book will set a solid foundation for you to start implementing microservices.</p>
Table of Contents (17 chapters)
Title Page
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Database perspective and best practice


The main challenge of migrating from monolithic to microservice is dividing the database with a clear-cut separation. As mentioned before, you need a domain expert here. Only a domain expert will have the knowledge about which data normally changes together. With experience, you can also have this knowledge. With this knowledge, divide the database in a bounded context.

To start with, rather than actual separation, one can start with database views. By doing this, one can ensure that any separation is working fine. For a new microservice that is separated out, you can read/write from these views. You might feel some performance issues, but this is acceptable until you are in a trial period. Another way of doing it would be to migrate data from the core database to a new database used by the new microservice. This data transfer can be done in two different ways:

  • Trigger
  • Event sourcing

You can implement the trigger in the core database, and as data is modified...