Microservices is a software architecture approach that advocates using smaller, independent units of software in place of monolithic all-in-one services. The following collection of informative resources gives you a great foundation of knowledge for getting started and succeeding with microservices.

Learn the basics

Martin Fowler
Martin Fowler is a renowned software engineer, author, and speaker. His website contains lots of great insights related to microservices in particular and software development in general. Acquainting yourself with Martin Fowler’s work is a great first step in understanding the best practices in software development and architecture.

Microservices for the Grumpy Neckbeard
A short introduction to the topic of microservices with focus on implementation and interfaces.

Blogs and select posts

Talks

Social media

Quora discussions

Microservices discussion on Quora
Disadvantages of microservices architecture
Microservices for mobile development
Reporting for microservices architectures
Differences between SOA and microservices

Communities

Microservices meetups on meetup.com

Open Source Software

Tools and Platforms

  • Ruxit – Continuous Monitoring
  • MANTL.io – The hassle free microservices stack

Related topics

In the coming weeks we’ll compile digests like this one for the related topics listed below.

Domain-driven design

This topic covers software architecture in general. In 2004, a book with this title was published. Many ideas included in this book are seen as prerequisites for being able to apply microservices successfully. Most notably the concept of bounded contexts.

DevOps

Going down microservices lane requires more than just the application of a new style of software architecture. It also requires a new mindset. The DevOps approach is the right mindset. To get started on this topic, read our DevOps digest.

REST

REST-style APIs are one way to interface your microservices for the rest of the world to access.

Continuous integration

Continuous integration aims to provide a toolchain that maintains a certain level of code quality by automatically running tests, collecting code metrics, and more.

Continuous deployment and containers (Docker, LXC, etc)

The goal of continuous deployment is to make publishing your changes as automated and error-free as possible.