Vox Pop

Development — Software, Personal, or Otherwise

This website is being deprecated. All archives and new writing is being moved over to MatthewReinbold.com.

A Microservice Primer

Essential Resources to Get Started

Irakli quoting Irakli on Microservices in early 2015

Introduction

If you have had anything to do with APIs in the past several years, chances are you've heard of microservices. If you've tried Googling afterward, chances are also that you've been overwhelmed by the deluge of tutorials, tips, and treacle within an easy click.

After a year's worth of writing the REST API Newsletter, I've been there. To help shortcut the learning process I've collected some of the best resources in one place. Enjoy, and if there is an essential reference that I've missed, let me know - I'd be glad to check it out.

Foundational Work

What are microservices? Here's where to start:

Where to Start Building?

RESTful API design has enough ideological quagmires. Microservices are no exception. Should developers start with a monolithic software architecture or opt for fine grained services? There's no right answer. But for an introduction to both sides:

Implementing Microservices

Sami Lamti not only attended a workshop by Sam Newman, but shared his impressions of the content. The four part series includes:

Problems and Pitfalls

Irakli Nadareishvili is a frequent API speaker. Like Sam, he has a couple of online videos worth looking at:

At some point when you have numerous, tiny services you have to put them back together again. That may be either through choreography or orchestration. For an example of how Netflix does it, check out Daniel Jacobson's article on "The Future of API Design: The Orchestration Layer".

Microservices in Practice

It makes no sense to fill up on theory and ignore the body of first-hand accounts from those that have built microservices. A couple notable accounts include:

Extra Credit

While I've tried to only provide the highlights, there's plenty more for those with the time (or the inclination) to go further: