Skip to content

Microservice

September 29, 2023
May 15, 2016

Modularize all the things

lots of known unknowns and unknown unknowns here

Microservice in short is a distributed modular system. A good Monolith should also be a modular system.

Module and Components are different in the sense that Components are composable. The iPhone charger is a Module but cannot charge an Android phone. Desktop PC hardwares can be interchanged and thus are Components.
Microservice tends to compose Components, each is an independent Component, as an application.

On an e-Commerce website, Orders, Wishlist, Recommendation, Product Category can all be separate microservices.

Microservices architecture
Building microservices on Azure | Microsoft Docs
SOA Manifesto
Learn microservices
Introducing Domain-Oriented Microservice Architecture | Uber Engineering Blog
Chapter 13: SOA Primer | dan chak
From Monoliths to Microservices: An Architectural Strategy - The New Stack
Code inComplete - SOA - Overview
How to build resilient microservices | InfoWorld !important, Ballerina
Of Microservices & Containers - By Spruha Pandya
What are Microservices? | Netlify

微服务:从设计到部署 · GitBook
Blog Series - Building Microservices | Callista Enterprise
Explain like I'm 5: Microservices in Node.js - NodeSource

Microservices: An application revolution powered by the cloud | Blog | Microsoft Azure
Effective Microservices Architecture with Event-Driven Design - The New Stack

Microservices: The Essential Practices | Technology Conversations
Monolithic Servers vs Microservices | Technology Conversations

Microservice Patterns That Help Large Enterprises Speed Development, Deployment and Extension | Java Code Geeks - 2018
How Anti-Patterns Can Stifle Microservices Adoption in the Enterprise | Java Code Geeks - 2018

Rewriting Uber Engineering: The Opportunities Microservices Provide - Uber Engineering Blog
Asynchronous APIs in Choreographed Microservices | Nordic APIs |

Microservices Workshop All Topics Deck 2016 Adrian Cockcroft
Microservices 101 - The Big Why? // Speaker Deck
When and Why for Microservices | Iron.io
Microservice Principles: Smart Endpoints and Dumb Pipes
What are microservices? Lightweight software development explained | InfoWorld
Microservices tutorial: How to build microservices apps | InfoWorld
7 secrets to scaling with microservices | InfoWorld
微服务下使用 GraphQL 构建 BFF (Backend for Frontends)的实践
Q&A: Microservices design patterns | TSH.io
Webinar: Design patterns for microservice architecture - YouTube

Introduction to Microservices | NGINX series by Nginx
microservices Archives - NGINX
NGINX Plus and Kubernetes Power Microservices Architectures
NGINX Microservices Reference Architecture: Download the Free Ebook
Microservices design and deployment with NGINX | Free Ebook

SOA Lessons Learned
Practical SOA / microservices - Typed Requests
Practical SOA / microservices - Hydration - Part 1
Practical SOA / microservices - Hydration - Part 2
Microservices and Service Oriented Architecture | Packt Hub
Microservices Versus SOA in Practice | Voxxed
Learn from SOA: 5 lessons for the microservices era | InfoWorld

Simplifying Your Transition from Macro to Microservices - via @codeship | via @codeship
From Macro to Microservices: Jumpstarting Your Transition - via @codeship | via @codeship
An Introduction to Building Your Apps with Microservices
Building Scalable Microservices | Packt Hub Spring Boot
Breaking into Microservices Architecture | Packt Hub
microservice.add(observability) isNotEqualTo(microservice.add(monitoring)

20 Go language projects for mastering microservices | InfoWorld

GraphQL in a Microservices Architecture – ITNEXT

Node, npm, and Service Oriented Architecture - Forward 4 Web Summit - YouTube
Richard Rodger - "How Microservcies fail and what to do about it" - YouTube slide
Mastering Chaos - A Netflix Guide to Microservices - YouTube

Connecting the Services

devops#Service Registration and Discovery

Microservices for Java Developers: Microservices Communication | Java Code Geeks - 2018
Microservices Messaging: Why REST Isn't Always the Best Choice - via @codeship | via @codeship
Use Custom Packet Framing for Microservices Messaging | Java Code Geeks - 2018

Microservice Communication with Queues - via @codeship | via @codeship
Scaling Microservices with Message Queues, Spring Boot and Kubernetes

REST and MQTT: Yin and Yang of Micro-Service APIs – Dejan Glozic
mattduffield/microservices: This is a sample using MQTT
oemdaro/mqtt-microservices: The example of MQTT microservices based system build on top of Node.js, Go (Golang), Java, gRPC and Apache Kafka

Data

Hot shot 009 – Dealing with M/SOA DATA (part 1) « Peter Pilgrim :: Java Champion :: Digital Developer Architect
Hot shot 010 – Dealing with Micro-Service Oriented Architecture DATA (part 2) « Peter Pilgrim :: Java Champion :: Digital Developer Architect
The hardest part of microservices is your data - YouTube
Thank You for Requesting this Webinar Recording - Is Your Data Architecture Ready for Microservices? - VoltDB

Christian Posta

The Hardest Part of Microservices: Calling Your Services – Software Blog
The Hardest Part About Microservices: Your Data – Software Blog
3 Easy Things to Do to Make Your Microservices More Resilient – Software Blog
Why Microservices Should Be Event Driven: Autonomy vs Authority – Software Blog

Microservices for Java Developers [Book]

Microscaling

Microscaling in a Box - container scaling
microscaling/microscaling: Microscaling Engine

Increasing Resource Efficiency with Microscaling - via @codeship | via @codeship

Service mesh

"Side-cart" attached to the service for

We've Made Quite A Mesh - Tim Hockin, Google - YouTube
Getting Started with a Service Mesh - a Linkerd Intro - {code}
The difference between API Gateways and Service Mesh | Cloud Native Computing Foundation
service mesh 是什么,常用工具有哪些?
Do you need a service mesh? - O'Reilly Media
An Overview of the Service Mesh and Its Tooling Options | Java Code Geeks - 2018
Service Mesh for Microservices - Microservices in Practice - Medium
The Top 3 Service Mesh Developments in 2020 – The New Stack
Deploying Service Mesh in Production

SMI | A standard interface for service meshes on Kubernetes
Standardizing Service Mesh Value Measurement

Google Cloud Blog - News, Features and Announcements

avito-tech/netramesh: Ultra light service mesh for any orchestrator
Introducing netramesh — lightweight service mesh – AvitoTech – Medium

Connect (Service Segmentation) - Consul by HashiCorp
Meshery The Service Mesh Management Plane | Layer5

The Rush to Fix the Kubernetes Failover Problem – The New Stack Linkerd, Istio, Consul

Linkerd vs Istio: my 2¢ – Jeff Gensler – Medium
Comparison to similar systems — envoy documentation
Setting up a service mesh in GKE using Linkerd2 and Traefik 2.0
Kubernetes Service Mesh: A Comparison of Istio, Linkerd and Consul
Comparing eBPF and Istio/Envoy for monitoring microservice interactions | Cloud Native Computing Foundation
How eBPF will solve Service Mesh - Goodbye Sidecars
eBPF and Wasm: Exploring the Future of the Service Mesh Data Plane

Traefik Mesh, the Simplest Service Mesh | Traefik Labs
traefik/mesh: Traefik Mesh - Simpler Service Mesh
Announcing Maesh, a Lightweight and Simpler Service Mesh from Traefik
Maesh, a Simpler Service Maesh. Presented by The Traefik Team!

Microservices Demo: Sock Shop
microservices-demo/microservices-demo: Deployment scripts & config for Sock Shop

Testing

Improving Testability of Java Microservices with Container Orchestration and a Service Mesh

On the Contrary

The Fallacy of Tiny Modules | hueniverse
Small modules: it’s not quite that simple — Medium
One-line node modules · Issue #10 · sindresorhus/ama
Modularity
Microservices in Production: 5 Challenges You Should Know | Takipi Blog
Microservice Mistakes – Complexity as a Service | Form Follows Function
Microservices - Not a free lunch! - High Scalability -
When microservices becomes darkservices | Java Code Geeks - 2018
Goodbye Microservices: From 100s of problem children to 1 superstar · Segment Blog

Serverless, Microservices, or Monolith: Choosing Back End Architecture for Your Startup
This Week in Programming: When NOT to Do Microservices - The New Stack
About When Not to Do Microservices – Software Blog
You're not going to do Microservices – Software Blog
Istio as an Example of When Not to Do Microservices – Software Blog
Bits or pieces?: Pioneers, Settlers and Town Planners
The gist is that pioneers, those implementing MVP or experimenting the core values of the product with their clients (in other words, the clients don’t have concrete requirements), should use monolith for faster iteration and easier maintenance.
Microservices should only be considered in the next phases when the need to scale arises.

Honestly, We Shouldn’t Have Used Microservices | by Mika Yeap | CodeX | Apr, 2021 | Medium

This Week in Programming: Forget Microservices, Monoliths Are the Way Forward - The New Stack
Monoliths are the future |> News and podcasts for developers |> Changelog

GOTO 2021 • The Problem with Microservices • Dave Farley - YouTube

You Want Modules, Not Microservices
Stop Creating Microservices | Prime Reacts - YouTube

Microservices Demo

microservices-demo/microservices-demo: Deployment scripts & config for Sock Shop
microservices-demo/load-test: A load-test script & container for Sock Shop

Microservices with Kubernetes, Docker, Helm. (Part 1) Generic configuration and API Gateway - CodeProject

Martin Fowler

Microservices !important
Microservices • Martin Fowler - YouTube
Characteristics of a Microservice Architecture:

Testing Strategies in a Microservice Architecture
MonolithFirst

InfoQ

Migrating to Microservices
Testing Web Services, Microservices and APIs
Microservices Retrospective – What We Learned (and Didn’t Learn) from Netflix

DZone

Micro-Components Architecture - DZone Microservices patterns used in microservices

DZone Microservices
Microservices in Practice: From Architecture to Deployment - DZone Microservices
Patterns for Microservices — Sync vs. Async - DZone Microservices
Design Considerations for a Microservice Architecture With Docker Swarm - DZone Microservices
10 Best Practices for Microservice Architectures - DZone Microservices
Microservices vs. SOA – Is There Any Difference at All? - DZone Integration
Microservices vs. Service-Oriented Architecture (SOA) - DZone Microservices
How Are Your Microservices Talking? - DZone Microservices vs SOA
We've Done SOA, Why Should We Care About Microservices? - DZone Microservices

Getting Your Team Ready for Microservices — Part 1 - DZone Microservices
Getting Your Team Ready for Microservices — Part 2 - DZone Microservices
Microservices: Organizational Practices, Part 1 - DZone Microservices
Microservices: Organizational Practices, Part 2 - DZone Microservices

Microservices Architectures: Event Driven Approach - DZone Microservices
Building Microservices Through Event-Driven Architecture, Part 1: Application-Specific Business Rules - DZone Microservices
Building Microservices Through Event-Driven Architecture, Part 2: Domain Objects and Business Rules - DZone Microservices
Building Microservices Through Event-Driven Architecture, Part 3: Presenters, Views, and Controllers - DZone Microservices
Building Microservices Through Event-Driven Architecture, Part 4: Repositories - DZone Microservices
Building Microservices Through Event-Driven Architecture, Part 5: Dockerization - DZone Microservices

Microservices and Distributed Transactions - DZone Microservices
Distributed Transactions and Microservices Still Don't Mix - DZone Microservices

Auth0

Auth0's three part series: !important
An Introduction to Microservices, Part 1
API Gateway. An Introduction to Microservices, Part 2
An Introduction to Microservices, Part 3: The Service Registry
mfa-and-microservices-blog-samples/microservices at master · auth0-blog/mfa-and-microservices-blog-samples


Linkerd

Buoyant | Open source Linkerd service mesh for cloud-native applications
Linkerd has built in Prometheus and Grafana dashboard
A guide to distributed tracing with Linkerd | Linkerd

Linkerd2 is built with Conduit, control plane in Go; data plane in Rust (Conduit)
linkerd/linkerd2: Open source service mesh for cloud-native applications, v2
Linkerd 2.0 Now In General Availability: From Service Mesh to Service Sidecar - Cloud Native Computing Foundation
Linkerd v2: How Lessons from Production Adoption Resulted in a Rewrite of the Service Mesh
Hands On With Linkerd 2.0 - Kubernetes
Linkerd - Announcing Linkerd 2.3: Towards Zero-Touch Zero-Trust Networking for Kubernetes
Under the hood of Linkerd's state-of-the-art Rust proxy, Linkerd2-proxy | Linkerd

Conduit
conduit-rust GitHub Org
conduit-rust/conduit: Web Application Interface for Rust
Introducing Conduit - blog.buoyant

v1

based on framework in Twitter, JVM based
linkerd
linkerd/linkerd: Resilient service mesh for cloud native apps 1.0, Scala
Finagle RPC for JVM
Vladimir Kostyukov - Finagle 101
Finagle — Finagle Under the Hood

Envoy

kubernetes#Envoy

Envoy Proxy - Home out of application edge and service proxy used by Istio, eventually consistent
How to write WASM filters for Envoy and deploy it with Istio · Banzai Cloud
Extending the Envoy Proxy With WebAssembly - Container Journal
one man's singularity - Extending Envoy With Wasm and Rust

Convergence of Envoy and eBPF, removing side car

Istio

Istio !important, heavyweight, uses Envoy, let Google run it
istio/istio: Sample code, build and tests and governance material for the Istio project.
Istio / The Evolution of Istio's APIs
回归单体 —— Istio 的自我救赎? · Service Mesh|服务网格中文社区
Istio as an Example of When Not to Do Microservices – Software Blog
Diving Into Istio 1.6 Certificate Rotation – Software Blog

What Is Istio and Why Does Kubernetes Need it? – The New Stack
A Crash Course For Running Istio – Namely Labs – Medium
Easy microservices with Kubernetes and Istio ✅ ☸️ ⛵️ - DEV Community 👩‍💻👨‍💻
Welcome to the service mesh era: Introducing a new Istio blog post series | Google Cloud Blog
Istio Service Mesh Control Plane - DZone Microservices
Exploring Istio telemetry and observability · Banzai Cloud

Running Istio on Kubernetes in production. Part I. – AvitoTech – Medium
Istio and Kubernetes in production. Part 2. Tracing

Running Apache Kafka over Istio - benchmark · Banzai Cloud

Kubernetes-based Microservice Observability with Istio Service Mesh: Part 1
Kubernetes-based Microservice Observability with Istio Service Mesh: Part 2

Microservices in the Cloud with Kubernetes and Istio (Google I/O '18) - YouTube
Reducing Microservices Architecture Complexity with Istio and Kubernetes
Crashing KubeCon: Has Istio become the new cloud-native darling? – GeekWire
5 things you didn't know about Istio - YouTube

The rise of the Istio service mesh | InfoWorld
Why you need Istio, Kubernetes, and Weave Cloud for Distributed Applications
GitOps for Istio - Manage Istio Config like Code

redhat-developer-demos/istio-tutorial: Istio Tutorial for Java Microservices

Backyards

Backyards - the automated service mesh · Banzai Cloud the Banzai Cloud Istio distribution, making Istio easy to use and manage for everyone
Announcing Banzai Cloud automated service mesh, Backyards - Istio the easy way · Banzai Cloud
Backyards - automated service mesh for multi and hybrid cloud deployments · Banzai Cloud

banzaicloud/backyards-cli: CLI for Backyards, a multi and hybrid-cloud enabled service mesh platform

StdLib

StdLib — API development made simple A Standard Library for Microservices
StdLib – Docs

Code.xyz — Code Editor for APIs
Scrape Websites for Information Easily using Code.xyz and Node.js

Ballerina

Home - Ballerina.io
Language to implement middleware microservices to integrate enterprise services
Replaces ESB
Learn

Ballerina: A Programming Language for Cloud Native Computing - The New Stack
Ballerina: A Data-Oriented Programming Language
How Ballerina is different from other programming languages

Intro to Ballerina: A Cloud Native Programming Language - YouTube

Ballerina Language with Tyler Jewell - Software Engineering Daily

Tower (Rust)

tower-rs GitHub org
tower-rs/tower: fn(Request) -> Future

Dapr

Dapr - Distributed Application Runtime
dapr/dapr: Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.

Dapr : The Ultimate Developer API for Authoring Microservices - YouTube

Dapr for .NET Developers | Microsoft Docs
Announcing Distributed Application Runtime (Dapr), an open source project to make it easier for every developer to build microservice applications - Open Source Blog

Micronaut

Micronaut Framework compiled with GraalVM
Micronaut framework promises low-overhead microservices | InfoWorld

Micro

Go framework

Micro | Platform APIs built for developers
Getting Started with Micro | Micro

What is Micro? It’s just the future of microservices development. | Micro

Micro GitHub org
micro/micro: A microservice toolkit
An ecosystem which simplifies building and managing microservices

Universal Micro Services | M3O
Pricing | M3O

Micro from Vercel

Node.js framework

vercel/micro: Asynchronous HTTP microservices

amio/awesome-micro: A collection of awesome things regarding zeit's micro.
Simple, but not too simple: how using Zeit’s micro improves your Node applications · Code with Hugo

Serverless Framework

The Serverless Application Framework | Serverless.com

serverless/serverless: ⚡ Serverless Framework – Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more! –
hapi pal - lalalambda

Architect

Architect serverless framework

Zato

Zato - Home
Open-source ESB, SOA, REST, APIs, SSO and Cloud Integrations in Python — Zato 3.0.0 documentation

Kong

Kong Community Edition | Open Source API Gateway API gateway
Kong Hub | Plugins and Integrations | Kong - Open-Source API Management and Microservice Management
Kong Mesh - KongHQ

Kong/kubernetes-ingress-controller: Use Kong for Kubernetes Ingress
Kong Microservices Api Gateway with Docker - DEV Community 👩‍💻👨‍💻

Deploy your NextJS Application on a different base path (i.e. not root) | by Ernesto F | Level Up Coding
How I Stopped Coding Repetitive Service Components with Kong - DZone Web Dev
Breaking Up a Monolithic Database with Kong - DZone Microservices

Kuma

Kuma
Introducing Kuma: The Universal Service Mesh - KongHQ
Implementing a Secure Service Mesh – The New Stack

Lever OS

Introducing Lever OS — Lever OS blog

Seneca

Seneca, a microservices toolkit for Node.js
Seneca 1.0 for Node.js and microservices is out - nearForm
Object oriented technology was great - now enter microservices with Node.js slides demo
mcollina/bloomrun: A js pattern matcher based on bloom filters map string -> anything, faster than patrun
Building JavaScript Microservices with SenecaJS and Compose

Seneca Microservices Framework
senecajs/seneca-auth: A Seneca user authentication plugin for Hapi and Express
senecajs/seneca-web: A plugin that provides HTTP functionality for the Seneca framework

NearForm

Studio

ericholiveira/studio: A nodejs framework to create decoupled and scalable applications

GraftJS

Graft.io - coming soon | Daemon.co.za
Full-Stack Through Microservices
GraftJS/graft: full-stack javascript through microservices
GraftJS/jschan: JavaScript port of libchan based around streams

Nameko

Nameko

gRPC APIs with Nameko – ITNEXT
nameko/nameko-grpc: GRPC Extensions for Nameko
nameko/nameko-examples-grpc: Examples of Nameko gRPC Extensions

Helidon

Helidon
oracle/helidon: Java libraries for writing microservices

Helidon Takes Flight – Oracle Developers – Medium
Meet Helidon,  a new open source Java microservices framework - JAXenter

Hydra

flywheelsports/hydra: A light-weight library for building distributed applications such as microservices

Introduction · Hydra
Quick tutorial · Hydra
Resources · Hydra

Building a Microservices Example Game with Distributed Messaging | @RisingStack

Netflix

Netflix/Hystrix: Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.
Building Fault-Tolerant MicroServices using Netflix’s Hystrix

Go micro

micro/go-micro: A microservice framework
Meet Go micro, a zero-dependency microservice framework - JAXenter

Micro Blog - THE SIMPLEST WAY TO BUILD MICROSERVICES
micro/micro: A microservice toolkit

go-kit

go-kit/kit: A standard library for microservices.
kit - GoDoc

Go kit: Go in the modern enterprise
Microservices in Go using Go-kit | Heroku
How to write a microservice in Go with Go kit - DEV Community 👩‍💻👨‍💻

Hippo

Introducing Hippo: A Golang Microservices Toolkit | Clivern
Clivern/Hippo: 💨A well crafted go packages that help you build robust, reliable, maintainable microservices.