A quick primer on microservices

As we said, a microservice focuses on solving a problem and solving it right, much like the UNIX philosophy of make each program do one thing well [Doug McIlroy].

That said, too many people describe microservices as being less than a certain number of lines of code, or less than a certain number of megabytes in total size. Nothing could be further from the truth. In fact, microservices are more closely tied to bounded contexts as defined by Eric Evans in Domain Driven Design, a worthwhile read despite having been written in 2003.

In essence, a microservice should focus on solving a particular problem, and only use enough domain knowledge to tackle that specific problem. If other parts of the system wish to interact with the same domain, their own context might be different.

In case you missed it, we introduced Spring Cloud (http://projects.spring.io/spring-cloud/) in the previous chapter using Spring Cloud Stream. Spring Cloud is a collection of Spring projects that are aimed at solving cloud-native problems. These are problems observed time and again when systems grow in size and scope, and are often relegated to cloud platforms. Solving cloud-native problems with microservices has seen a high rate of success, hence making many of their tools a perfect fit for this chapter.

Suffice it to say, entire books have been written on the subject of microservices, so, to further explore this realm, feel free to look about. For the rest of this chapter, we'll see how Spring Boot and Spring Cloud make it super simple to engage in microservice development without paying a huge cost.

There are hundreds of books written on the subject of microservices. For more details, check out the free book, Migrating to Cloud Native Application Architectures by cloud native polymath Matt Stine (http://mattstine.com). It covers many concepts that underpin microservices.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.27.131