1375 lines
67 KiB
HTML
1375 lines
67 KiB
HTML
<h1 id="awesome-microservices-awesome">Awesome Microservices <a
|
||
href="https://github.com/sindresorhus/awesome"><img
|
||
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p>A curated list of Microservice Architecture related principles and
|
||
technologies.</p>
|
||
<p><strong>Table of Contents</strong></p>
|
||
<ul>
|
||
<li><a href="#platforms">Platforms</a></li>
|
||
<li><a href="#frameworks--runtimes">Frameworks / Runtimes</a></li>
|
||
<li><a href="#service-toolkits">Service Toolkits</a>
|
||
<ul>
|
||
<li><a href="#polyglot">Polyglot</a></li>
|
||
<li><a href="#c">C</a></li>
|
||
<li><a href="#c-1">C++</a></li>
|
||
<li><a href="#csharp">C#</a></li>
|
||
<li><a href="#d">D</a></li>
|
||
<li><a href="#erlang-vm">Erlang VM</a></li>
|
||
<li><a href="#go">Go</a></li>
|
||
<li><a href="#haskell">Haskell</a></li>
|
||
<li><a href="#java-vm">Java VM</a></li>
|
||
<li><a href="#nodejs">Node.js</a></li>
|
||
<li><a href="#perl">Perl</a></li>
|
||
<li><a href="#php">PHP</a></li>
|
||
<li><a href="#python">Python</a></li>
|
||
<li><a href="#ruby">Ruby</a></li>
|
||
<li><a href="#rust">Rust</a></li>
|
||
</ul></li>
|
||
<li><a href="#frontend--ui">Frontend / UI</a></li>
|
||
<li><a href="#capabilities">Capabilities</a>
|
||
<ul>
|
||
<li><a href="#api-gateways--edge-services">API Gateways / Edge
|
||
Services</a></li>
|
||
<li><a href="#configuration--discovery">Configuration &
|
||
Discovery</a></li>
|
||
<li><a href="#workflow-orchestration">Workflow Orchestration</a></li>
|
||
<li><a href="#elasticity">Elasticity</a></li>
|
||
<li><a href="#job-schedulers--workload-automation">Job Schedulers /
|
||
Workload Automation</a></li>
|
||
<li><a href="#logging">Logging</a></li>
|
||
<li><a href="#messaging">Messaging</a></li>
|
||
<li><a href="#monitoring--debugging">Monitoring & Debugging</a></li>
|
||
<li><a href="#reactivity">Reactivity</a></li>
|
||
<li><a href="#resilience">Resilience</a></li>
|
||
<li><a href="#security">Security</a></li>
|
||
<li><a href="#serialization">Serialization</a></li>
|
||
<li><a href="#storage">Storage</a></li>
|
||
<li><a href="#testing">Testing</a></li>
|
||
</ul></li>
|
||
<li><a href="#continuous-integration--delivery">Continuous Integration
|
||
& Delivery</a></li>
|
||
<li><a href="#web-api-modeling--documentation">Web API Modeling &
|
||
Documentation</a>
|
||
<ul>
|
||
<li><a href="#graphql">GraphQL</a></li>
|
||
<li><a href="#json">JSON</a></li>
|
||
<li><a href="#rest">REST</a></li>
|
||
</ul></li>
|
||
<li><a href="#standards--recommendations">Standards /
|
||
Recommendations</a>
|
||
<ul>
|
||
<li><a href="#world-wide-web">World Wide Web</a></li>
|
||
<li><a href="#self-sovereignty--decentralisation">Self-sovereignty &
|
||
Decentralisation</a></li>
|
||
<li><a href="#http11">HTTP/1.1</a></li>
|
||
<li><a href="#http2">HTTP/2</a></li>
|
||
<li><a href="#quic">QUIC</a></li>
|
||
<li><a href="#coap">CoAP</a></li>
|
||
<li><a href="#rpc">RPC</a></li>
|
||
<li><a href="#messaging-1">Messaging</a></li>
|
||
<li><a href="#security-1">Security</a></li>
|
||
<li><a href="#service-discovery">Service Discovery</a></li>
|
||
<li><a href="#data-formats">Data Formats</a></li>
|
||
<li><a href="#vocabularies">Vocabularies</a></li>
|
||
<li><a href="#unicode">Unicode</a></li>
|
||
</ul></li>
|
||
<li><a href="#organization-design--team-dynamics">Organization Design /
|
||
Team Dynamics</a></li>
|
||
<li><a href="#enterprise--verticals">Enterprise & Verticals</a></li>
|
||
<li><a href="#theory">Theory</a>
|
||
<ul>
|
||
<li><a href="#articles--papers">Articles & Papers</a></li>
|
||
<li><a href="#sites--organizations">Sites & Organizations</a></li>
|
||
</ul></li>
|
||
<li><a href="#license">License</a></li>
|
||
<li><a href="#contributing">Contributing</a></li>
|
||
</ul>
|
||
<h2 id="platforms">Platforms</h2>
|
||
<ul>
|
||
<li><a href="https://jolie-lang.org">Jolie</a> - Open source
|
||
microservice-oriented programming language.</li>
|
||
<li><a href="https://www.kalix.io/">Kalix (c)</a> - Platform as a
|
||
Service that abstracts away the complexity of event-driven
|
||
microservices.</li>
|
||
<li><a href="https://www.lightbend.com/">Lightbend (c)</a> - Platform
|
||
for building scalable reactive systems on the JVM.</li>
|
||
<li><a href="http://openwhisk.org/">OpenWhisk</a> - Serverless, open
|
||
source cloud platform that executes functions in response to events at
|
||
any scale.</li>
|
||
<li><a href="https://pulumi.io/">Pulumi</a> - SDK for cloud native
|
||
infrastructure as code. Use your favorite language to preview and manage
|
||
updates to your apps and infrastructure, and continuously deploy to any
|
||
cloud (no YAML required).</li>
|
||
<li><a href="https://github.com/joyent/triton">Triton</a> - Open-source
|
||
cloud management platform that delivers next generation,
|
||
container-based, service-oriented infrastructure across one or more data
|
||
centers.</li>
|
||
<li><a href="https://www.winglang.io/">Wing</a> - Cloud-oriented
|
||
programming language. It allows developers to build distributed systems
|
||
that fully leverage the power of the cloud without having to worry about
|
||
the underlying infrastructure.</li>
|
||
</ul>
|
||
<h2 id="frameworks-runtimes">Frameworks / Runtimes</h2>
|
||
<ul>
|
||
<li><a href="http://akka.io/">Akka</a> - Toolkit and runtime for
|
||
building highly concurrent, distributed, and resilient message-driven
|
||
applications on the JVM.</li>
|
||
<li><a href="https://axoniq.io/">Axon (c)</a> - An end-to-end
|
||
development and infrastructure platform for easy development and running
|
||
of any DDD, CQRS and Event Sourcing applications on JVM.</li>
|
||
<li><a href="https://ballerina.io">Ballerina</a> - Cloud native
|
||
programming language.</li>
|
||
<li><a href="https://bun.sh/">Bun</a> - Fast all-in-one JavaScript
|
||
runtime.</li>
|
||
<li><a href="https://dapr.io">Dapr</a> - Open source runtime for writing
|
||
highly performant microservices using any programming language.</li>
|
||
<li><a href="https://deno.land/">Deno</a> - JavaScript, TypeScript, and
|
||
WebAssembly runtime with secure defaults and a great developer
|
||
experience.</li>
|
||
<li><a href="https://microprofile.io/">Eclipse Microprofile</a> - An
|
||
open forum to optimize Enterprise Java for a microservices architecture
|
||
by innovating across multiple implementations and collaborating on
|
||
common areas of interest with a goal of standardization.</li>
|
||
<li><a href="https://github.com/erlang/otp">Erlang/OTP</a> - Programming
|
||
language used to build massively scalable soft real-time systems with
|
||
requirements on high availability.</li>
|
||
<li><a href="http://twitter.github.io/finagle">Finagle</a> - Extensible
|
||
RPC system for the JVM, used to construct high-concurrency servers.</li>
|
||
<li><a href="https://gleam.run/">Gleam</a> - A friendly language for
|
||
building type-safe, scalable systems.</li>
|
||
<li><a href="https://www.graalvm.org/">GraalVM</a> - High-performance
|
||
runtime that provides significant improvements in application
|
||
performance and efficiency which is ideal for microservices.</li>
|
||
<li><a href="https://helidon.io/">Helidon</a> - Collection of Java
|
||
libraries for writing microservices that run on a fast web core powered
|
||
by Netty.</li>
|
||
<li><a href="https://zeroc.com/">Ice</a> - Comprehensive RPC framework
|
||
with support for C++, C#, Java, JavaScript, Python, and more.</li>
|
||
<li><a href="https://github.com/networknt/light-4j">Light-4j</a> - A
|
||
high throughput, low latency, small memory footprint and more productive
|
||
microservices platform.</li>
|
||
<li><a href="http://micronaut.io/">Micronaut</a> - A modern, JVM-based,
|
||
full-stack framework for building modular, easily testable microservice
|
||
applications.</li>
|
||
<li><a href="https://github.com/hypermodeinc/modus">Modus</a> - An open
|
||
source, serverless framework for building intelligent functions and
|
||
APIs, powered by WebAssembly.</li>
|
||
<li><a href="http://moleculer.services/">Moleculer</a> - Fast &
|
||
powerful microservices framework for Node.js, Java, Go and Ruby.</li>
|
||
<li><a href="https://openliberty.io/">Open Liberty</a> - A lightweight
|
||
open framework for building fast and efficient cloud-native Java
|
||
microservices.</li>
|
||
<li><a href="https://github.com/orbit/orbit">Orbit</a> - Modern
|
||
framework for JVM languages that makes it easier to build and maintain
|
||
distributed and scalable online services.</li>
|
||
<li><a href="https://github.com/holepunchto/pear">Pears</a> -
|
||
Peer-to-peer runtime, development and deployment.</li>
|
||
<li><a href="https://smallrye.io/">SmallRye</a> - APIs and
|
||
implementations tailored for cloud development, including Eclipse
|
||
MicroProfile.</li>
|
||
<li><a href="https://github.com/fermyon/spin">Spin</a> - An open source
|
||
framework for building and running fast, secure, and composable cloud
|
||
microservices with WebAssembly.</li>
|
||
<li><a href="https://github.com/scalecube/scalecube">ScaleCube</a> -
|
||
Toolkit for building reactive microservices for the JVM: low-latency,
|
||
high-throughput, scalable and resilient.</li>
|
||
<li><a href="http://vertx.io/">Vert.X</a> - Toolkit for building
|
||
reactive applications on the JVM.</li>
|
||
<li><a
|
||
href="https://github.com/vert-x3/vertx-microservices-toolbox">Vert.X
|
||
Toolbox</a> - A set of Vert.x components to build reactive microservice
|
||
applications.</li>
|
||
<li><a href="https://github.com/facebook/wangle">Wangle</a> - A
|
||
framework providing a set of common client/server abstractions for
|
||
building services in a consistent, modular, and composable way.</li>
|
||
</ul>
|
||
<h2 id="service-toolkits">Service Toolkits</h2>
|
||
<h3 id="polyglot">Polyglot</h3>
|
||
<ul>
|
||
<li><a href="http://www.grpc.io/">GRPC</a> - A high performance, open
|
||
source, general RPC framework that puts mobile and HTTP/2 first.
|
||
Libraries in C, C++, Java, Go, Node.js, Python, Ruby, Objective-C, PHP
|
||
and C#.</li>
|
||
<li><a href="http://github.com/hprose">Hprose</a> - A very newability
|
||
RPC Library, support 25+ languages now.</li>
|
||
</ul>
|
||
<h3 id="c">C</h3>
|
||
<ul>
|
||
<li><a href="https://kore.io/">Kore</a> - Easy to use web application
|
||
framework for writing scalable web APIs in C.</li>
|
||
<li><a href="https://github.com/wolkykim/libasyncd/">Libasyncd</a> -
|
||
Embeddable event-based asynchronous HTTP server library for C.</li>
|
||
<li><a href="http://libslack.org/">Libslack</a> - Provides a generic
|
||
agent oriented programming model, run time selection of locking
|
||
strategies, functions that make writing daemons trivial and simplify the
|
||
implementation of network servers and clients, &c.</li>
|
||
<li><a href="http://lwan.ws/">Lwan</a> - High-performance and scalable
|
||
web server.</li>
|
||
<li><a href="https://github.com/davidmoreno/onion">Onion</a> - C library
|
||
to create simple HTTP servers and web applications.</li>
|
||
</ul>
|
||
<h3 id="c-1">C++</h3>
|
||
<!-- #c-1 anchor -->
|
||
<ul>
|
||
<li><a href="https://capnproto.org/cxxrpc.html">Cap’n Proto RPC</a> -
|
||
The Cap’n Proto C++ RPC implementation.</li>
|
||
<li><a href="https://github.com/CppMicroServices/CppMicroServices">C++
|
||
Micro Services</a> - An OSGi-like C++ dynamic module system and service
|
||
registry.</li>
|
||
<li><a href="https://github.com/endurox-dev/endurox/">Enduro/X</a> -
|
||
XATMI based service framework for GNU/Linux.</li>
|
||
<li><a href="https://github.com/oktal/pistache">Pistache</a> - A
|
||
high-performance REST toolkit written in C++.</li>
|
||
<li><a href="http://pocoproject.org/">Poco</a> - C++ class libraries for
|
||
building network-based applications and servers.</li>
|
||
<li><a href="https://github.com/sogou/workflow">Sogou Workflow</a> -
|
||
Enterprise-grade programming engine aimed to satisfy most of the backend
|
||
development requirements.</li>
|
||
</ul>
|
||
<h3 id="csharp">CSharp</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/mjebrahimi/Awesome-Microservices-NetCore">Awesome
|
||
Microservices .NET Core</a> :star: - A collection of awesome training
|
||
series, articles, videos, books, courses, sample projects, and tools for
|
||
microservices in .NET Core.</li>
|
||
<li><a href="http://getakka.net/">Akka.NET</a> - Toolkit and runtime for
|
||
building highly concurrent, distributed, and fault tolerant event-driven
|
||
applications on .NET & Mono.</li>
|
||
<li><a href="https://dotnet.github.io/orleans/">Orleans</a> - Provides a
|
||
straightforward approach to building distributed high-scale computing
|
||
applications, without the need to learn and apply complex concurrency or
|
||
other scaling patterns.</li>
|
||
</ul>
|
||
<h3 id="d">D</h3>
|
||
<ul>
|
||
<li><a href="http://vibed.org/">Vibe.d</a> - Asynchronous I/O that
|
||
doesn’t get in your way, written in D.</li>
|
||
</ul>
|
||
<h3 id="erlang-vm">Erlang VM</h3>
|
||
<h4 id="elixir">Elixir</h4>
|
||
<ul>
|
||
<li><a href="http://www.phoenixframework.org/">Phoenix</a> - Framework
|
||
for building HTML5 apps, API backends and distributed systems.</li>
|
||
<li><a href="https://github.com/elixir-lang/plug">Plug</a> - A
|
||
specification and conveniences for composable modules between web
|
||
applications.</li>
|
||
</ul>
|
||
<h4 id="erlang">Erlang</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/ninenines/cowboy">Cowboy</a> - Small,
|
||
fast, modular HTTP server written in Erlang.</li>
|
||
<li><a href="https://github.com/mochi/mochiweb">Mochiweb</a> - Erlang
|
||
library for building lightweight HTTP servers.</li>
|
||
</ul>
|
||
<h3 id="go">Go</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/go-chi/chi">Chi</a> - Lightweight,
|
||
idiomatic and composable router for building Go HTTP services.</li>
|
||
<li><a href="https://echo.labstack.com/">Echo</a> - Fast and unfancy
|
||
HTTP server framework for Go. Up to 10x faster than the rest.</li>
|
||
<li><a href="https://github.com/gofiber/fiber">Fiber</a> - Express
|
||
inspired web framework built on top of Fasthttp, the fastest HTTP engine
|
||
for Go. Designed to ease things up for fast development with zero memory
|
||
allocation and performance in mind.</li>
|
||
<li><a href="https://github.com/gin-gonic/gin">Gin</a> - Gin is a HTTP
|
||
web framework written in Go (Golang). It features a Martini-like API
|
||
with much better performance, up to 40 times faster.</li>
|
||
<li><a href="https://github.com/goadesign/goa">Goa</a> - Design-based
|
||
HTTP microservices in Go.</li>
|
||
<li><a href="https://github.com/gofr-dev/gofr">GoFr</a> - An opinionated
|
||
microservice development framework emphasizing scalability and
|
||
robustness. Designed to simplify the development of microservices.</li>
|
||
<li><a href="https://github.com/go-chassis/go-chassis">Go Chassis</a> -
|
||
A framework for rapid development of microservices in Go that is easy to
|
||
integrate with some cloud ecosystems.</li>
|
||
<li><a href="https://github.com/go-kit/kit">Go kit</a> - Distributed
|
||
programming toolkit for microservices in the modern enterprise.</li>
|
||
<li><a href="https://github.com/micro/go-micro">Go-micro</a> - A
|
||
distributed systems development framework.</li>
|
||
<li><a href="https://github.com/tal-tech/go-zero">go-zero</a> - A web
|
||
and rpc distributed system development framework.</li>
|
||
<li><a href="http://www.gorillatoolkit.org/">Gorilla</a> - Web toolkit
|
||
for the Go programming language.</li>
|
||
<li><a href="https://github.com/kataras/iris">Iris</a> - Fast, simple
|
||
and efficient micro web framework for Go.</li>
|
||
<li><a href="https://github.com/luraproject/lura">Lura</a> - Framework
|
||
to build ultra performance API Gateways with middlewares.</li>
|
||
<li><a href="https://github.com/micro/micro">Micro</a> - A distributed
|
||
systems runtime for the cloud and beyond.</li>
|
||
<li><a href="https://github.com/urfave/negroni">Negroni</a> - Idiomatic
|
||
HTTP middleware for Golang.</li>
|
||
<li><a href="https://github.com/smallnest/rpcx">RPCX</a> - A distributed
|
||
RPC service framework based on NET/RPC like Alibaba Dubbo and Weibo
|
||
Motan.</li>
|
||
</ul>
|
||
<h3 id="haskell">Haskell</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/scotty-web/scotty">Scotty</a> - Micro
|
||
web framework inspired by Ruby’s Sinatra, using WAI and Warp.</li>
|
||
<li><a href="https://github.com/haskell-servant/servant">Servant</a> -
|
||
Type-level web DSL.</li>
|
||
<li><a href="https://github.com/yesodweb/yesod">Yesod</a> - The Haskell
|
||
RESTful web framework.</li>
|
||
</ul>
|
||
<h3 id="java-vm">Java VM</h3>
|
||
<h4 id="clojure">Clojure</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/weavejester/compojure">Compojure</a> - A
|
||
concise routing library for Ring/Clojure.</li>
|
||
<li><a href="https://github.com/weavejester/duct">Duct</a> - Minimal
|
||
framework for building web applications in Clojure, with a strong
|
||
emphasis on simplicity.</li>
|
||
<li><a href="https://github.com/danielsz/system">System</a> - Built on
|
||
top of Stuart Sierra’s component library, offers a set of readymade
|
||
components.</li>
|
||
<li><a href="https://github.com/otto-de/tesla-microservice">Tesla</a> -
|
||
Common basis for some of Otto.de’s Clojure microservices.</li>
|
||
</ul>
|
||
<h4 id="java">Java</h4>
|
||
<ul>
|
||
<li><a href="https://rpc.activej.io">ActiveRPC</a> - Lightweight and
|
||
fast library for complex high-load distributed applications and
|
||
Memcached-like solutions.</li>
|
||
<li><a href="https://github.com/airlift/airlift">Airlift</a> - Framework
|
||
for building REST services in Java.</li>
|
||
<li><a href="https://line.github.io/armeria/">Armeria</a> - Open-source
|
||
asynchronous HTTP/2 RPC/REST client/server library built on top of Java
|
||
8, Netty, Thrift and gRPC.</li>
|
||
<li><a href="https://github.com/LMAX-Exchange/disruptor">Disruptor</a> -
|
||
High-performance inter-thread messaging library.</li>
|
||
<li><a href="https://dropwizard.github.io/">Dropwizard</a> - Java
|
||
framework for developing ops-friendly, high-performance, RESTful web
|
||
services.</li>
|
||
<li><a href="https://github.com/apache/dubbo">Dubbo</a> - A
|
||
high-performance, java based RPC framework open-sourced by Alibaba.</li>
|
||
<li><a
|
||
href="https://github.com/palantir/conjure-java-runtime">Conjure</a> -
|
||
Opinionated set of libraries for defining and creating RESTish/RPC
|
||
servers and clients based on Feign or Retrofit as a client and
|
||
Dropwizard/Jersey with JAX-RS service definitions as a server.</li>
|
||
<li><a href="https://github.com/eclipse-ee4j/jersey">Jersey</a> -
|
||
RESTful services in Java. JAX-RS reference implementation.</li>
|
||
<li><a href="https://quarkus.io/">Quarkus</a> - A Kubernetes Native Java
|
||
stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of
|
||
breed Java libraries and standards.</li>
|
||
<li><a href="https://ratpack.io/">Ratpack</a> - Set of Java libraries
|
||
that facilitate fast, efficient, evolvable and well tested HTTP
|
||
applications. specific support for the Groovy language is provided.</li>
|
||
<li><a href="http://projects.spring.io/spring-boot/">Spring Boot</a> -
|
||
Makes it easy to create stand-alone, production-grade Spring based
|
||
applications.</li>
|
||
</ul>
|
||
<h4 id="kotlin">Kotlin</h4>
|
||
<ul>
|
||
<li><a href="https://www.http4k.org/">Http4k</a> - Lightweight but
|
||
fully-featured HTTP toolkit written in pure Kotlin that enables the
|
||
serving and consuming of HTTP services in a functional and consistent
|
||
way.</li>
|
||
<li><a href="https://ktor.io/">Ktor</a> - Framework for building
|
||
asynchronous servers and clients in connected systems using the Kotlin
|
||
programming language.</li>
|
||
</ul>
|
||
<h4 id="scala">Scala</h4>
|
||
<ul>
|
||
<li><a href="http://twitter.github.io/finatra/">Finatra</a> - Fast,
|
||
testable, Scala HTTP services built on Twitter-Server and Finagle.</li>
|
||
<li><a href="http://http4s.org/">Http4s</a> - A minimal, idiomatic Scala
|
||
interface for HTTP</li>
|
||
<li><a href="https://www.playframework.com/">Play</a> - The high
|
||
velocity web framework for Java and Scala.</li>
|
||
<li><a href="http://paypal.github.io/squbs/">Squbs</a> - A suite of
|
||
components enabling standardization and operationalization of Akka and
|
||
Akka HTTP applications/services in a large scale, managed, cloud
|
||
environment.</li>
|
||
</ul>
|
||
<h3 id="node.js">Node.js</h3>
|
||
<ul>
|
||
<li><a href="http://www.actionherojs.com/">Actionhero</a> -
|
||
Multi-transport Node.js API server with integrated cluster capabilities
|
||
and delayed tasks.</li>
|
||
<li><a href="http://expressjs.com/">Express</a> - Fast, unopinionated,
|
||
minimalist web framework for Node.js</li>
|
||
<li><a href="https://www.fastify.io/">Fastify</a> - Fastify, Fast and
|
||
low overhead web framework, for Node.js.</li>
|
||
<li><a href="http://feathersjs.com/">FeathersJS</a> - An open source
|
||
REST and realtime API layer for modern applications.</li>
|
||
<li><a href="https://hono.dev/">Hono</a> - Small, simple, and ultrafast
|
||
web framework for the Edges. It works on any JavaScript runtime.</li>
|
||
<li><a href="http://koajs.com/">Koa</a> - Next generation web framework
|
||
for Node.js</li>
|
||
<li><a href="http://loopback.io/">Loopback</a> - Node.js framework for
|
||
creating APIs and easily connecting to backend data sources.</li>
|
||
<li><a href="http://github.com/zeithq/micro">Micro</a> - Asynchronous
|
||
HTTP microservices.</li>
|
||
<li><a href="https://docs.nestjs.com/">NestJS</a> - A Node.js framework
|
||
for building efficient and scalable server-side applications with a
|
||
built-in microservices support.</li>
|
||
<li><a href="https://github.com/senecajs/seneca">Seneca</a> - A
|
||
microservices toolkit for Node.js</li>
|
||
<li><a href="https://github.com/serverless/serverless">Serverless</a> -
|
||
Build and maintain web, mobile and IoT applications running on AWS
|
||
Lambda and API Gateway (formerly known as JAWS).</li>
|
||
<li><a href="https://github.com/trpc/trpc">tRPC</a> - End-to-end
|
||
typesafe APIs.</li>
|
||
</ul>
|
||
<h3 id="perl">Perl</h3>
|
||
<ul>
|
||
<li><a href="http://cro.services/">Cro</a> - Libraries for creating
|
||
reactive distributed systems using Perl 6.</li>
|
||
<li><a href="https://mojolicious.org/">Mojolicious</a> - Next generation
|
||
web framework for Perl.</li>
|
||
</ul>
|
||
<h3 id="php">PHP</h3>
|
||
<ul>
|
||
<li><a href="https://api-platform.com/">API Platform</a> - API-first web
|
||
framework on top of Symfony with JSON-LD, Schema.org and Hydra
|
||
support.</li>
|
||
<li><a href="https://docs.ecotone.tech/">Ecotone</a> - Framework based
|
||
on architectural principles of DDD, CQRS and Event Sourcing that
|
||
provides building blocks to create scalable and extensible
|
||
applications.</li>
|
||
<li><a href="https://github.com/hyperf/hyperf">Hyperf</a> - Hyperf is an
|
||
extremely performant and flexible PHP CLI framework based on Swoole
|
||
4.5+, powered by the state-of-the-art coroutine server and a large
|
||
number of battle-tested components.</li>
|
||
<li><a href="https://lumen.laravel.com/">Lumen</a> - Stunningly fast
|
||
micro-framework.</li>
|
||
<li><a href="https://phalconphp.com/">Phalcon</a> - Full-stack PHP
|
||
framework delivered as a C-extension.</li>
|
||
<li><a href="http://www.slimframework.com/">Slim</a> - Micro-framework
|
||
that helps you quickly write simple yet powerful web applications and
|
||
APIs.</li>
|
||
<li><a href="https://spiral.dev/">Spiral</a> - Framework designed for
|
||
long-running applications using <a
|
||
href="https://roadrunner.dev/">RoadRunner</a>. It offers advanced
|
||
features like integration with the <a
|
||
href="https://temporal.io/">Temporal</a> workflow engine and <a
|
||
href="https://centrifugal.dev/">Centrifugo</a> websocket server. It is
|
||
particularly effective for microservices architecture, providing robust
|
||
support for REST APIs and gRPC services.</li>
|
||
<li><a href="https://github.com/swoft-cloud/swoft/">Swoft</a> - PHP
|
||
microservices coroutine framework for building high-performance web
|
||
systems, APIs, middleware, and basic services.</li>
|
||
<li><a href="https://symfony.com/">Symfony</a> - Micro-framework based
|
||
on the Symfony components.</li>
|
||
</ul>
|
||
<h3 id="python">Python</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/aio-libs/aiohttp">Aiohttp</a> - HTTP
|
||
client/server for asyncio.</li>
|
||
<li><a href="https://bottlepy.org">Bottle</a> - Fast, simple and
|
||
lightweight WSGI micro web-framework for Python.</li>
|
||
<li><a href="https://github.com/zalando/connexion">Connexion</a> -
|
||
Swagger/OpenAPI framework for Python on top of Flask with automatic
|
||
endpoint validation and OAuth2 support.</li>
|
||
<li><a href="https://falconframework.org/">Falcon</a> - Bare-metal
|
||
Python web API framework for building very fast app backends and
|
||
microservices.</li>
|
||
<li><a href="https://fastapi.tiangolo.com/">FastAPI</a> - Modern, fast
|
||
(high-performance), web framework for building APIs with Python 3.6+
|
||
based on standard Python type hints.</li>
|
||
<li><a href="http://flask.pocoo.org/">Flask</a> - Python framework for
|
||
microservices based on Werkzeug and Jinja 2.</li>
|
||
<li><a href="https://github.com/onefinestay/nameko">Nameko</a> - Python
|
||
framework for building microservices.</li>
|
||
<li><a href="https://github.com/sanic-org/sanic">Sanic</a> - Sanic is a
|
||
Flask-like Python 3.5+ web server that’s written to go fast.</li>
|
||
<li><a href="http://www.tornadoweb.org/">Tornado</a> - Web framework and
|
||
asynchronous networking library.</li>
|
||
<li><a href="https://twisted.org/">Twisted</a> - Event-driven network
|
||
programming engine.</li>
|
||
<li><a href="https://github.com/webpy/webpy/">Web.py</a> - Minimalist
|
||
web framework for Python.</li>
|
||
</ul>
|
||
<h3 id="ruby">Ruby</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/ruby-grape/grape">Grape</a> - An
|
||
opinionated framework for creating REST-like APIs</li>
|
||
<li><a href="https://github.com/hanami">Hanami</a> - A modern web
|
||
framework for Ruby.</li>
|
||
<li><a href="https://github.com/rightscale/praxis">Praxis</a> -
|
||
Framework for both designing and implementing APIs.</li>
|
||
<li><a href="https://github.com/wardrop/Scorched">Scorched</a> -
|
||
Light-weight web framework for Ruby.</li>
|
||
<li><a href="http://www.sinatrarb.com/">Sinatra</a> - Sinatra is a DSL
|
||
for quickly creating web applications in Ruby with minimal effort.</li>
|
||
</ul>
|
||
<h3 id="rust">Rust</h3>
|
||
<ul>
|
||
<li><a href="https://www.arewewebyet.org/">Are we web yet?</a> :star: -
|
||
A summary of the current state of web programming in Rust.</li>
|
||
<li><a href="https://actix.rs/">Actix</a> - Powerful, pragmatic, and
|
||
extremely fast web framework for Rust.</li>
|
||
<li><a href="https://github.com/google/tarpc">Tarpc</a> - RPC framework
|
||
for Rust with a focus on ease of use.</li>
|
||
<li><a href="https://github.com/tower-rs/tower">Tower</a> - Library of
|
||
modular and reusable components for building robust networking clients
|
||
and servers.</li>
|
||
<li><a href="https://github.com/c410-f3r/wtx">Wtx</a> - HTTP/2
|
||
client/server framework.</li>
|
||
</ul>
|
||
<h2 id="frontend-ui">Frontend / UI</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/ChristianUlbrich/awesome-microfrontends">Awesome
|
||
Micro Frontends</a> :star: - A curated list of resources about Micro
|
||
Frontends.</li>
|
||
<li><a href="https://github.com/electrode-io">Electrode</a> - Universal
|
||
React/Node.js application platform.</li>
|
||
<li><a href="https://micro-frontends.org">Micro Frontends</a> -
|
||
Extending the microservice idea to frontend development.</li>
|
||
<li><a href="https://w3c.github.io/miniapp/white-paper/">MiniApp White
|
||
Paper</a> - MiniApp standardization white paper.</li>
|
||
</ul>
|
||
<h2 id="capabilities">Capabilities</h2>
|
||
<h3 id="api-gateways-edge-services">API Gateways / Edge Services</h3>
|
||
<blockquote>
|
||
<p>Note that <a
|
||
href="https://blog.envoyproxy.io/service-mesh-data-plane-vs-control-plane-2774e720f7fc">data
|
||
and control plane</a> components are not categorized at this moment.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a href="https://www.getambassador.io">Ambassador (c)</a> -
|
||
Kubernetes-native API gateway for microservices built on Envoy.</li>
|
||
<li><a href="https://github.com/3scale/APIcast">APIcast</a> - APIcast is
|
||
an API gateway built on top of NGINX. It is part of the Red Hat 3scale
|
||
API Management Platform.</li>
|
||
<li><a href="https://github.com/bunkerity/bunkerweb">Bunker Web</a> -
|
||
Web app hosting and reverse proxy secure by default.</li>
|
||
<li><a href="https://caddyserver.com/">Caddy</a> - Extensible HTTP/2 web
|
||
server with automatic HTTPS.</li>
|
||
<li><a href="http://camel.apache.org/">Camel</a> - Empowers you to
|
||
define routing and mediation rules in a variety of domain-specific
|
||
languages, including a Java-based fluent API, Spring or Blueprint XML
|
||
configuration files, and a Scala DSL.</li>
|
||
<li><a href="https://github.com/lyft/envoy">Envoy</a> - Open source edge
|
||
and service proxy, from the developers at Lyft.</li>
|
||
<li><a href="https://github.com/haproxy/haproxy">HAProxy</a> - Reliable,
|
||
high Performance TCP/HTTP load balancer.</li>
|
||
<li><a href="https://istio.io/">Istio</a> - An open platform to connect,
|
||
manage, and secure microservices.</li>
|
||
<li><a href="http://www.keepalived.org/">Keepalived</a> - Simple and
|
||
robust facilities for loadbalancing and high-availability to Linux
|
||
system and Linux based infrastructures.</li>
|
||
<li><a href="https://github.com/kong/kong">Kong</a> - Open source
|
||
management layer for APIs.</li>
|
||
<li><a href="http://krakend.io/">KrakenD</a> - Open source ultra
|
||
performance API Gateway.</li>
|
||
<li><a href="https://kuma.io/">Kuma</a> - Platform agnostic open source
|
||
control plane for service mesh and microservices.</li>
|
||
<li><a href="https://linkerd.io/">Linkerd</a> - Resilient service mesh
|
||
for cloud native apps.</li>
|
||
<li><a href="https://github.com/eBay/Neutrino">Neutrino</a> - Extensible
|
||
software load balancer.</li>
|
||
<li><a href="http://openresty.org/">OpenResty</a> - Fast web application
|
||
server built on top of Nginx.</li>
|
||
<li><a href="https://openservicemesh.io/">Open Service Mesh</a> -
|
||
Lightweight and extensible cloud native service mesh.</li>
|
||
<li><a href="https://www.otoroshi.io/">Otoroshi</a> - Modern HTTP
|
||
reverse proxy with lightweight API management.</li>
|
||
<li><a href="https://github.com/cloudflare/pingora">Pingora</a> - A
|
||
library for building fast, reliable and evolvable network services.</li>
|
||
<li><a href="https://github.com/zalando/skipper">Skipper</a> - HTTP
|
||
router useful for decoupling routing from service logic.</li>
|
||
<li><a href="https://cloud.spring.io/spring-cloud-gateway/">Spring Cloud
|
||
Gateway</a> - API Gateway on top of Spring MVC. Aims to provide a
|
||
simple, yet effective way to route to APIs.</li>
|
||
<li><a href="http://tengine.taobao.org/">Tengine</a> - A distribution of
|
||
Nginx with some advanced features.</li>
|
||
<li><a href="http://traefik.io/">Træfɪk</a> - A modern HTTP reverse
|
||
proxy and load balancer made to deploy microservices with ease.</li>
|
||
<li><a href="https://github.com/apache/trafficserver">Traffic Server</a>
|
||
- High-performance building block for cloud services.</li>
|
||
<li><a href="https://tyk.io/">Tyk</a> - Open source, fast and scalable
|
||
API gateway, portal and API management platform.</li>
|
||
<li><a href="https://github.com/vulcand/vulcand">Vulcand</a> -
|
||
Programmatic load balancer backed by Etcd.</li>
|
||
<li><a href="https://github.com/Netflix/zuul">Zuul</a> - An edge service
|
||
that provides dynamic routing, monitoring, resiliency, security, and
|
||
more.</li>
|
||
</ul>
|
||
<h3 id="configuration-discovery">Configuration & Discovery</h3>
|
||
<ul>
|
||
<li><a href="https://line.github.io/centraldogma/">Central Dogma</a> -
|
||
Open-source highly-available version-controlled service configuration
|
||
repository based on Git, ZooKeeper and HTTP/2.</li>
|
||
<li><a href="https://www.consul.io/">Consul</a> - Service discovery and
|
||
configuration made easy. Distributed, highly available, and
|
||
datacenter-aware.</li>
|
||
<li><a href="https://github.com/coreos/etcd">Etcd</a> - Highly-available
|
||
key-value store for shared configuration and service discovery.</li>
|
||
<li><a
|
||
href="https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance">Eureka</a>
|
||
- REST based service that is primarily used in the AWS cloud for
|
||
locating services for the purpose of load balancing and failover of
|
||
middle-tier servers.</li>
|
||
<li><a href="https://microconfig.io">Microconfig</a> - Modern and simple
|
||
way of microservice configuration management.</li>
|
||
<li><a href="https://github.com/alibaba/nacos">Nacos</a> - Easy-to-use
|
||
dynamic service discovery, configuration and service management
|
||
platform.</li>
|
||
<li><a href="https://github.com/skynetservices/skydns">SkyDNS</a> -
|
||
Distributed service for announcement and discovery of services built on
|
||
top of etcd. It utilizes DNS queries to discover available
|
||
services.</li>
|
||
<li><a href="http://cloud.spring.io/spring-cloud-config/">Spring Cloud
|
||
Config</a> - Provides server and client-side support for externalized
|
||
configuration in a distributed system.</li>
|
||
<li><a href="https://zookeeper.apache.org/">ZooKeeper</a> - Open source
|
||
server which enables highly reliable distributed coordination.</li>
|
||
</ul>
|
||
<h3 id="workflow-orchestration">Workflow Orchestration</h3>
|
||
<ul>
|
||
<li><a href="https://aws.amazon.com/step-functions/">AWS Step Functions
|
||
(c)</a> - Coordinate the components of distributed applications and
|
||
microservices using visual workflows.</li>
|
||
<li><a href="https://cadenceworkflow.io/">Cadence</a> - Fault-oblivious
|
||
stateful code platform.</li>
|
||
<li><a href="https://github.com/Netflix/conductor">Conductor</a> - A
|
||
microservices orchestration engine.</li>
|
||
<li><a href="https://github.com/inngest/inngest">Inngest</a> - Durable
|
||
functions for reliable background logic, from background jobs to complex
|
||
workflows.</li>
|
||
<li><a href="https://github.com/kestra-io/kestra">Kestra</a> - Open
|
||
source microservices event-driven, language-agnostic orchestration and
|
||
scheduling platform.</li>
|
||
<li><a href="https://github.com/temporalio/temporal">Temporal</a> - Open
|
||
source microservices orchestration platform for running mission critical
|
||
code at any scale.</li>
|
||
<li><a href="https://camunda.com/platform/zeebe/">Zeebe</a> - Define,
|
||
orchestrate, and monitor business processes across microservices.</li>
|
||
</ul>
|
||
<h3 id="elasticity">Elasticity</h3>
|
||
<ul>
|
||
<li><a href="http://hazelcast.org/">Hazelcast</a> - Open source
|
||
in-memory data-grid. Allows you to distribute data and computation
|
||
across servers, clusters and geographies, and to manage very large data
|
||
sets or high data ingest rates. Mature technology.</li>
|
||
<li><a href="http://helix.apache.org/">Helix</a> - Generic cluster
|
||
management framework used for the automatic management of partitioned,
|
||
replicated and distributed resources hosted on a cluster of nodes.</li>
|
||
<li><a href="http://ignite.apache.org/">Ignite</a> - High-performance,
|
||
integrated and distributed in-memory platform for computing and
|
||
transacting on large-scale data sets in real-time, orders of magnitude
|
||
faster than possible with traditional disk-based or flash
|
||
technologies.</li>
|
||
<li><a href="https://libp2p.io/">Libp2p</a> - A framework and suite of
|
||
protocols for building peer-to-peer network applications.</li>
|
||
<li><a href="https://mesos.apache.org/">Mesos</a> - Abstracts CPU,
|
||
memory, storage, and other compute resources away from machines
|
||
(physical or virtual), enabling fault-tolerant and elastic distributed
|
||
systems to easily be built and run effectively.</li>
|
||
<li><a href="https://www.nomadproject.io/">Nomad</a> - Distributed,
|
||
highly available, datacenter-aware scheduler.</li>
|
||
<li><a href="https://github.com/mrniko/redisson">Redisson</a> -
|
||
Distributed and scalable Java data structures on top of Redis
|
||
server.</li>
|
||
<li><a href="https://www.serf.io/">Serf</a> - Decentralized solution for
|
||
cluster membership, failure detection and orchestration.</li>
|
||
<li><a href="https://github.com/valkey-io/valkey">Valkey</a> - A new
|
||
project to resume development on the formerly open-source Redis
|
||
project.</li>
|
||
<li><a href="https://zenoh.io/">Zenoh</a> - Pub/sub/query protocol
|
||
unifying data in motion, data at rest and computations. Efficiently
|
||
blends traditional pub/sub with geo distributed storage, queries and
|
||
computations.</li>
|
||
</ul>
|
||
<h3 id="job-schedulers-workload-automation">Job Schedulers / Workload
|
||
Automation</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/celery/celery">Celery</a> - Asynchronous
|
||
task queue/job queue based on distributed message passing. Focused on
|
||
real-time operation and supports scheduling.</li>
|
||
<li><a href="http://dkron.io/">Dkron</a> - Distributed, fault tolerant
|
||
job scheduling system.</li>
|
||
<li><a href="https://github.com/contribsys/faktory">Faktory</a> -
|
||
Language-agnostic persistent background job server.</li>
|
||
<li><a href="http://rundeck.org/">Rundeck (c)</a> - Job scheduler and
|
||
runbook automation. Enable self-service access to existing scripts and
|
||
tools.</li>
|
||
<li><a href="https://github.com/schedulix/schedulix">Schedulix</a> -
|
||
Open source enterprise job scheduling system lays down ground-breaking
|
||
standards for the professional automation of IT processes in advanced
|
||
system environments.</li>
|
||
</ul>
|
||
<h3 id="logging">Logging</h3>
|
||
<ul>
|
||
<li><a href="http://www.fluentd.org/">Fluentd</a> - Open source data
|
||
collector for unified logging layer.</li>
|
||
<li><a href="https://www.graylog.org/">Graylog</a> - Fully integrated
|
||
open source log management platform.</li>
|
||
<li><a href="https://www.elastic.co/products/kibana">Kibana</a> -
|
||
Flexible analytics and visualization platform.</li>
|
||
<li><a href="https://logdna.com/">LogDNA (c)</a> - Centralized log
|
||
management software. Instantly collect, centralize, and analyze logs in
|
||
real-time from any platform, at any volume.</li>
|
||
<li><a href="https://www.elastic.co/logstash">Logstash</a> - Tool for
|
||
managing events and logs.</li>
|
||
<li><a href="https://github.com/grafana/loki">Loki</a> - Like
|
||
Prometheus, but for logs.</li>
|
||
</ul>
|
||
<h3 id="messaging">Messaging</h3>
|
||
<ul>
|
||
<li><a href="http://zeromq.org/">ØMQ</a> - Brokerless intelligent
|
||
transport layer.</li>
|
||
<li><a href="http://activemq.apache.org/">ActiveMQ</a> - Powerful open
|
||
source messaging and integration patterns server.</li>
|
||
<li><a href="https://github.com/real-logic/Aeron">Aeron</a> - Efficient
|
||
reliable UDP unicast, UDP multicast, and IPC message transport.</li>
|
||
<li><a href="https://beanstalkd.github.io/">Beanstalk</a> - Simple, fast
|
||
work queue.</li>
|
||
<li><a href="https://github.com/OptimalBits/bull">Bull</a> - Fast and
|
||
reliable Redis-based queue for Node.</li>
|
||
<li><a href="https://github.com/crossbario/crossbar">Crossbar</a> - Open
|
||
source networking platform for distributed and microservice
|
||
applications. It implements the open Web Application Messaging Protocol
|
||
(WAMP).</li>
|
||
<li><a href="http://kafka.apache.org/">Kafka</a> - Publish-subscribe
|
||
messaging rethought as a distributed commit log.</li>
|
||
<li><a href="https://github.com/zeromq/malamute">Malamute</a> - ZeroMQ
|
||
enterprise messaging broker.</li>
|
||
<li><a href="http://www.mosca.io/">Mosca</a> - MQTT broker as a
|
||
module.</li>
|
||
<li><a href="http://mosquitto.org/">Mosquitto</a> - Open source message
|
||
broker that implements the MQTT protocol.</li>
|
||
<li><a href="https://nats.io/">NATS</a> - Open source, high-performance,
|
||
lightweight cloud messaging system.</li>
|
||
<li><a href="http://nsq.io/">NSQ</a> - A realtime distributed messaging
|
||
platform.</li>
|
||
<li><a href="https://pulsar.apache.org/">Pulsar</a> - Distributed
|
||
pub-sub messaging system.</li>
|
||
<li><a href="https://www.rabbitmq.com/">RabbitMQ</a> - Open source
|
||
Erlang-based message broker that just works.</li>
|
||
<li><a href="https://github.com/redpanda-data/redpanda/">Redpanda</a> -
|
||
Streaming data platform for developers: Kafka API compatible, 10x
|
||
faster, no ZooKeeper and no JVM.</li>
|
||
<li><a href="https://github.com/apache/incubator-rocketmq">RocketMQ</a>
|
||
- A low latency, reliable, scalable, easy to use message oriented
|
||
middleware born from alibaba massive messaging business.</li>
|
||
<li><a href="https://verne.mq">VerneMQ</a> - Open source, scalable,
|
||
Erlang-based MQTT broker.</li>
|
||
</ul>
|
||
<h3 id="monitoring-debugging">Monitoring & Debugging</h3>
|
||
<ul>
|
||
<li><a href="https://www.elastic.co/beats/">Beats</a> - Lightweight
|
||
shippers for Elasticsearch & Logstash.</li>
|
||
<li><a href="https://github.com/yelp/elastalert">Elastalert</a> - Easy
|
||
& flexible alerting for Elasticsearch.</li>
|
||
<li><a href="http://ganglia.info/">Ganglia</a> - A scalable distributed
|
||
monitoring system for high-performance computing systems such as
|
||
clusters and grids.</li>
|
||
<li><a href="http://grafana.org/">Grafana</a> - An open source, feature
|
||
rich metrics dashboard and graph editor for Graphite, InfluxDB &
|
||
OpenTSDB.</li>
|
||
<li><a href="http://graphite.wikidot.com/">Graphite</a> - Scalable
|
||
realtime graphing.</li>
|
||
<li><a href="https://www.iopipe.com/">IOpipe (c)</a> - Application
|
||
performance monitoring for Amazon Lambda.</li>
|
||
<li><a href="https://www.jaegertracing.io/">Jaeger</a> - An open source,
|
||
end-to-end distributed tracing</li>
|
||
<li><a href="https://opentelemetry.io/">OpenTelemetry</a> -
|
||
High-quality, ubiquitous, and portable telemetry to enable effective
|
||
observability.</li>
|
||
<li><a href="http://prometheus.io/">Prometheus</a> - An open source
|
||
service monitoring system and time series database.</li>
|
||
<li><a href="http://riemann.io/">Riemann</a> - Monitors distributed
|
||
systems.</li>
|
||
<li><a href="https://github.com/sensu">Sensu</a> - Monitoring for
|
||
today’s infrastructure.</li>
|
||
<li><a href="https://skywalking.apache.org/">SkyWalking</a> -
|
||
Application performance monitor tool for distributed systems, especially
|
||
designed for microservices, cloud native and container-based (Docker,
|
||
K8s, Mesos) architectures.</li>
|
||
<li><a href="http://www.zabbix.com/">Zabbix</a> - Open source
|
||
enterprise-class monitoring solution.</li>
|
||
<li><a href="http://zipkin.io">Zipkin</a> - Distributed tracing
|
||
system.</li>
|
||
</ul>
|
||
<h3 id="reactivity">Reactivity</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/reactor">Reactor.io</a> - A
|
||
second-generation Reactive library for building non-blocking
|
||
applications on the JVM based on the Reactive Streams
|
||
Specification.</li>
|
||
<li><a href="https://github.com/softwaremill/reactive-kafka">Reactive
|
||
Kafka</a> - Reactive Streams API for Apache Kafka.</li>
|
||
<li><a href="http://reactivex.io/">ReactiveX</a> - API for asynchronous
|
||
programming with observable streams. Available for idiomatic Java,
|
||
Scala, C#, C++, Clojure, JavaScript, Python, Groovy, JRuby, and
|
||
others.</li>
|
||
<li><a href="https://rsocket.io/">RSocket</a> - Application protocol
|
||
providing Reactive Streams semantics.</li>
|
||
</ul>
|
||
<h3 id="resilience">Resilience</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/dastergon/awesome-chaos-engineering">Awesome
|
||
Chaos Engineering</a> :star: - A curated list of awesome chaos
|
||
engineering resources.</li>
|
||
<li><a href="https://github.com/Netflix/Hystrix">Hystrix</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.</li>
|
||
<li><a href="http://raftconsensus.github.io/">Raft Consensus</a> -
|
||
Consensus algorithm that is designed to be easy to understand. It’s
|
||
equivalent to Paxos in fault-tolerance and performance.</li>
|
||
<li><a
|
||
href="https://github.com/resilience4j/resilience4j">Resilience4j</a> -
|
||
Fault tolerance library designed for Java8 and functional
|
||
programming.</li>
|
||
<li><a href="http://resilient-http.github.io/">Resilient HTTP</a> - A
|
||
smart HTTP client with super powers like fault tolerance, dynamic server
|
||
discovery, auto balancing and reactive recovery, designed for
|
||
distributed systems.</li>
|
||
<li><a href="https://svix.com">Svix</a> - Webhooks service that sends
|
||
webhooks to your users with full retry schedules, exponential backoff,
|
||
signature verification, and event types.</li>
|
||
</ul>
|
||
<h3 id="security">Security</h3>
|
||
<ul>
|
||
<li><a href="https://www.cerbos.dev/product-cerbos-hub">Cerbos Hub</a> -
|
||
Authorization management system for authoring, testing, and deploying
|
||
access policies. Built scalable, fine-grained authorization in a
|
||
microservice architecture.</li>
|
||
<li><a href="https://github.com/coreos/dex">Dex</a> - Opinionated
|
||
auth/directory service with pluggable connectors. OpenID Connect
|
||
provider and third-party OAuth 2.0 delegation.</li>
|
||
<li><a href="http://jwt.io/">JWT</a> - JSON Web Tokens are an open,
|
||
industry standard RFC 7519 method for representing claims securely
|
||
between two parties.</li>
|
||
<li><a href="https://github.com/keycloak/keycloak">Keycloak</a> -
|
||
Full-featured and extensible auth service. OpenID Connect provider and
|
||
third-party OAuth 2.0 delegation.</li>
|
||
<li><a href="https://github.com/networknt/light-oauth2">Light OAuth2</a>
|
||
- A fast, lightweight and cloud native OAuth 2.0 authorization
|
||
microservices based on light-java.</li>
|
||
<li><a href="http://oauth.net/2/">OAuth</a> - Provides specific
|
||
authorization flows for web applications, desktop applications, mobile
|
||
phones, and living room devices. Many implementations.</li>
|
||
<li><a
|
||
href="https://openid.net/certified-open-id-developer-tools/">OpenID
|
||
Connect</a> - Libraries, products, and tools implementing current OpenID
|
||
specifications and related specs.</li>
|
||
<li><a href="https://openziti.io/">Open Ziti</a> - Zero trust security
|
||
and overlay networking as pure open source software.</li>
|
||
<li><a href="https://www.ory.sh/">ORY</a> - Open source identity
|
||
infrastructure and services.</li>
|
||
<li><a href="https://simplecloud.info/">SCIM</a> - System for
|
||
Cross-domain Identity Management.</li>
|
||
<li><a href="https://www.vaultproject.io/">Vault</a> - Secures, stores,
|
||
and tightly controls access to tokens, passwords, certificates, API
|
||
keys, and other secrets in modern computing.</li>
|
||
</ul>
|
||
<h3 id="serialization">Serialization</h3>
|
||
<ul>
|
||
<li><a href="https://avro.apache.org/">Avro</a> - Apache data
|
||
serialization system providing rich data structures in a compact, fast,
|
||
binary data format.</li>
|
||
<li><a href="https://github.com/microsoft/bond/">Bond</a> -
|
||
Cross-platform framework for working with schematized data, broadly used
|
||
at Microsoft in high scale services.</li>
|
||
<li><a href="https://github.com/ochrons/boopickle">BooPickle</a> -
|
||
Binary serialization library for efficient network communication. For
|
||
Scala and Scala.js</li>
|
||
<li><a href="https://capnproto.org/">Cap’n Proto</a> - Insanely fast
|
||
data interchange format and capability-based RPC system.</li>
|
||
<li><a href="http://cbor.io/">CBOR</a> - Implementations of the CBOR
|
||
standard (RFC 7049) in many languages.</li>
|
||
<li><a href="http://uscilab.github.io/cereal/">Cereal</a> - C++11
|
||
library for serialization.</li>
|
||
<li><a href="https://github.com/dakrone/cheshire">Cheshire</a> - Clojure
|
||
JSON and JSON SMILE encoding/decoding.</li>
|
||
<li><a href="http://etch.apache.org/">Etch</a> - Cross-platform,
|
||
language and transport-independent framework for building and consuming
|
||
network services.</li>
|
||
<li><a href="https://github.com/alibaba/fastjson">Fastjson</a> - Fast
|
||
JSON Processor.</li>
|
||
<li><a href="https://github.com/pquerna/ffjson">Ffjson</a> - Faster JSON
|
||
serialization for Go.</li>
|
||
<li><a
|
||
href="https://github.com/RuedigerMoeller/fast-serialization">FST</a> -
|
||
Fast java serialization drop in-replacement.</li>
|
||
<li><a href="https://github.com/FasterXML/jackson">Jackson</a> - A
|
||
multi-purpose Java library for processing JSON data format.</li>
|
||
<li><a
|
||
href="https://github.com/FasterXML/jackson-module-afterburner">Jackson
|
||
Afterburner</a> - Jackson module that uses bytecode generation to
|
||
further speed up data binding (+30-40% throughput for serialization,
|
||
deserialization).</li>
|
||
<li><a href="https://github.com/EsotericSoftware/kryo">Kryo</a> - Java
|
||
serialization and cloning: fast, efficient, automatic.</li>
|
||
<li><a href="http://msgpack.org/">MessagePack</a> - Efficient binary
|
||
serialization format.</li>
|
||
<li><a href="https://github.com/protostuff/protostuff">Protostuff</a> -
|
||
A serialization library with built-in support for forward-backward
|
||
compatibility (schema evolution) and validation.</li>
|
||
<li><a href="https://github.com/harrah/sbinary">SBinary</a> - Library
|
||
for describing binary formats for Scala types.</li>
|
||
<li><a href="http://thrift.apache.org/">Thrift</a> - The Apache Thrift
|
||
software framework, for scalable cross-language services
|
||
development.</li>
|
||
</ul>
|
||
<h3 id="storage">Storage</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/Alluxio/alluxio">Alluxio</a> - Virtual
|
||
distributed storage system.</li>
|
||
<li><a href="http://cassandra.apache.org">Apache Cassandra</a> -
|
||
Column-oriented and providing high availability with no single point of
|
||
failure.</li>
|
||
<li><a href="http://www.aerospike.com/">Aerospike (c)</a> - High
|
||
performance NoSQL database delivering speed at scale.</li>
|
||
<li><a href="https://www.arangodb.com/">ArangoDB</a> - A distributed
|
||
free and open source database with a flexible data model for documents,
|
||
graphs, and key-values.</li>
|
||
<li><a href="https://github.com/palantir/atlasdb">AtlasDB</a> -
|
||
Transactional layer on top of a key value store.</li>
|
||
<li><a href="https://github.com/citusdata/citus">Citus</a> - Distributed
|
||
PostgreSQL as an extension.</li>
|
||
<li><a href="https://clickhouse.yandex/">ClickHouse</a> -
|
||
Column-oriented database management system that allows generating
|
||
analytical data reports in real time.</li>
|
||
<li><a href="https://www.cockroachlabs.com/">CockroachDB (c)</a> - A
|
||
cloud-native SQL database modelled after Google Spanner.</li>
|
||
<li><a href="https://couchbase.com/">Couchbase</a> - A distributed
|
||
database engineered for performance, scalability, and simplified
|
||
administration.</li>
|
||
<li><a href="https://crate.io/">Crate (c)</a> - Scalable SQL database
|
||
with the NoSQL goodies.</li>
|
||
<li><a href="http://www.datomic.com/">Datomic</a> - Fully transactional,
|
||
cloud-ready, distributed database.</li>
|
||
<li><a href="http://druid.io/">Druid</a> - Fast column-oriented
|
||
distributed data store.</li>
|
||
<li><a href="https://www.elastic.co/elasticsearch">Elasticsearch</a> -
|
||
Open source distributed, scalable, and highly available search
|
||
server.</li>
|
||
<li><a href="http://geode.incubator.apache.org/">Geode</a> - Open
|
||
source, distributed, in-memory database for scale-out applications.</li>
|
||
<li><a href="http://infinispan.org/">Infinispan</a> - Highly concurrent
|
||
key/value datastore used for caching.</li>
|
||
<li><a href="https://github.com/influxdata/influxdb">InfluxDB</a> -
|
||
Scalable datastore for metrics, events, and real-time analytics.</li>
|
||
<li><a href="http://opentsdb.net">OpenTSDB</a> - Scalable and
|
||
distributed time series database written on top of Apache HBase.</li>
|
||
<li><a href="https://github.com/pilosa/pilosa">Pilosa</a> - Open source,
|
||
distributed bitmap index that dramatically accelerates queries across
|
||
multiple, massive data sets.</li>
|
||
<li><a href="http://rethinkdb.com/">RethinkDB</a> - Open source,
|
||
scalable database that makes building realtime apps easier.</li>
|
||
<li><a href="https://github.com/ssbc/docs">Secure Scuttlebutt</a> - P2P
|
||
database of message-feeds.</li>
|
||
<li><a href="https://github.com/tikv">TiKV</a> - Distributed
|
||
transactional key-value database.</li>
|
||
<li><a href="https://trino.io/">Trino</a> - Fast distributed SQL query
|
||
engine for big data analytics that helps you explore your data
|
||
universe.</li>
|
||
</ul>
|
||
<h3 id="testing">Testing</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/buger/goreplay">Goreplay</a> - A tool
|
||
for capturing and replaying live HTTP traffic into a test
|
||
environment.</li>
|
||
<li><a href="https://mitmproxy.org/">Mitmproxy</a> - An interactive
|
||
console program that allows traffic flows to be intercepted, inspected,
|
||
modified and replayed.</li>
|
||
<li><a href="http://www.mbtest.org/">Mountebank</a> - Cross-platform,
|
||
multi-protocol test doubles over the wire.</li>
|
||
<li><a href="https://docs.pact.io">Pact</a> - Contract testing framework
|
||
for HTTP APIs and non-HTTP asynchronous messaging systems.</li>
|
||
<li><a href="https://github.com/restqa/restqa">RestQA</a> - A tool to
|
||
manage microservices mocking, unit and performance testing locally with
|
||
best in class developer experience.</li>
|
||
<li><a href="https://cloud.spring.io/spring-cloud-contract/">Spring
|
||
Cloud Contract</a> - TDD to the level of software architecture.</li>
|
||
<li><a href="https://github.com/vcr/vcr">VCR</a> - Record your test
|
||
suite’s HTTP interactions and replay them during future test runs for
|
||
fast, deterministic, accurate tests. See the list of ports for
|
||
implementations in other languages.</li>
|
||
<li><a href="https://github.com/epam/Wilma">Wilma</a> - Combined
|
||
HTTP/HTTPS service stub and transparent proxy solution.</li>
|
||
<li><a href="http://wiremock.org/">WireMock</a> - Flexible library for
|
||
stubbing and mocking web services. Unlike general purpose mocking tools
|
||
it works by creating an actual HTTP server that your code under test can
|
||
connect to as it would a real web service.</li>
|
||
<li><a href="https://github.com/spectolabs/hoverfly">Hoverfly</a> -
|
||
Lightweight service virtualization/API simulation tool for developers
|
||
and testers.</li>
|
||
</ul>
|
||
<h2 id="continuous-integration-delivery">Continuous Integration &
|
||
Delivery</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ciandcd/awesome-ciandcd">Awesome CI/CD
|
||
DevOps</a> :star: - A curated list of awesome tools for continuous
|
||
integration, continuous delivery and DevOps.</li>
|
||
</ul>
|
||
<h2 id="web-api-modeling-documentation">Web API Modeling &
|
||
Documentation</h2>
|
||
<h3 id="graphql">GraphQL</h3>
|
||
<ul>
|
||
<li><a href="http://graphql.org/">GraphQL</a> - Query language designed
|
||
to build client applications by providing an intuitive and flexible
|
||
syntax and system for describing their data requirements and
|
||
interactions.</li>
|
||
</ul>
|
||
<h3 id="json">JSON</h3>
|
||
<ul>
|
||
<li><a href="https://jsonapi.org/">JSON:API</a> - A specification for
|
||
how a client should request that resources be fetched or modified, and
|
||
how a server should respond to those requests.</li>
|
||
</ul>
|
||
<h3 id="rest">REST</h3>
|
||
<ul>
|
||
<li><a href="https://apiblueprint.org/">API Blueprint</a> - Tools for
|
||
your whole API lifecycle. Use it to discuss your API with others.
|
||
Generate documentation automatically. Or a test suite. Or even some
|
||
code.</li>
|
||
<li><a href="https://www.openapis.org/">OpenAPI</a> - The OpenAPI
|
||
Specification (OAS) provides a consistent means to carry information
|
||
through each stage of the API lifecycle.</li>
|
||
<li><a href="http://raml.org/">RAML</a> - RESTful API Modeling Language,
|
||
a simple and succinct way of describing practically-RESTful APIs.</li>
|
||
<li><a href="https://github.com/Redocly/redoc">ReDoc</a> -
|
||
OpenAPI/Swagger-generated API Documentation.</li>
|
||
<li><a href="https://github.com/slatedocs/slate">Slate</a> - Beautiful
|
||
static documentation for your API.</li>
|
||
<li><a href="http://projects.spring.io/spring-restdocs/">Spring REST
|
||
Docs</a> - Document RESTful services by combining hand-written
|
||
documentation with auto-generated snippets produced with Spring MVC
|
||
Test.</li>
|
||
<li><a href="https://swagger.io/">Swagger</a> - A simple yet powerful
|
||
representation of your RESTful API.</li>
|
||
</ul>
|
||
<h2 id="standards-recommendations">Standards / Recommendations</h2>
|
||
<h3 id="world-wide-web">World Wide Web</h3>
|
||
<ul>
|
||
<li><a href="http://www.w3.org/TR/webarch/">W3C.REC-Webarch</a> -
|
||
Architecture of the World Wide Web, Volume One.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc3986">RFC3986</a> - Uniform
|
||
Resource Identifier (URI): Generic Syntax.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc6570">RFC6570</a> - URI
|
||
Template.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7320">RFC7320</a> - URI
|
||
Design and Ownership.</li>
|
||
</ul>
|
||
<h3 id="self-sovereignty-decentralisation">Self-sovereignty &
|
||
Decentralisation</h3>
|
||
<ul>
|
||
<li><a href="https://www.w3.org/TR/did-core/">DID</a> - W3C
|
||
specification of Decentralized identifiers (DIDs): a new type of
|
||
identifier that enables verifiable, decentralized digital identity.</li>
|
||
<li><a
|
||
href="https://github.com/decentralized-identity/didcomm-messaging">DIDComm</a>
|
||
- Private communication methodology built atop the decentralized design
|
||
of DIDs.</li>
|
||
<li><a href="https://didcomm.org/">DIDComm Protocols</a> - Registry of
|
||
protocols built on DIDComm, for high-trust, self-sovereign interactions
|
||
over any transport.</li>
|
||
<li><a href="https://internationaldataspaces.org/">IDSA</a> - The
|
||
International Data Spaces Association (IDSA) is on a mission to create
|
||
the future of the global, digital economy with International Data Spaces
|
||
(IDS), a secure, sovereign system of data sharing in which all
|
||
participants can realize the full value of their data.</li>
|
||
</ul>
|
||
<h3 id="http1.1">HTTP/1.1</h3>
|
||
<ul>
|
||
<li><a href="https://tools.ietf.org/html/rfc7230">RFC7230</a> - Message
|
||
Syntax and Routing.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7231">RFC7231</a> -
|
||
Semantics and Content.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7232">RFC7232</a> -
|
||
Conditional Requests.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7233">RFC7233</a> - Range
|
||
Requests.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7234">RFC7234</a> -
|
||
Caching.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7235">RFC7235</a> -
|
||
Authentication.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7807">RFC7807</a> - Problem
|
||
Details for HTTP APIs.</li>
|
||
</ul>
|
||
<h3 id="http2">HTTP/2</h3>
|
||
<ul>
|
||
<li><a href="https://tools.ietf.org/html/rfc7540">RFC7540</a> -
|
||
Hypertext Transfer Protocol Version 2.</li>
|
||
</ul>
|
||
<h3 id="quic">QUIC</h3>
|
||
<ul>
|
||
<li><a href="https://quicwg.org/">QUIC-WG</a> - IETF Working Group that
|
||
is chartered to deliver the next transport protocol for the
|
||
Internet.</li>
|
||
<li><a
|
||
href="https://tools.ietf.org/html/draft-ietf-quic-transport-27">QUIC-Transport</a>
|
||
- A UDP-based multiplexed and secure transport.</li>
|
||
</ul>
|
||
<h3 id="rpc">RPC</h3>
|
||
<ul>
|
||
<li><a href="http://www.jsonrpc.org/specification">JSON-RPC 2.0</a> - A
|
||
stateless, light-weight remote procedure call (RPC) protocol.</li>
|
||
<li><a href="https://open-rpc.org/">Open RPC</a> - The OpenRPC
|
||
Specification defines a standard, programming language-agnostic
|
||
interface description for JSON-RPC 2.0 APIs.</li>
|
||
</ul>
|
||
<h3 id="messaging-1">Messaging</h3>
|
||
<ul>
|
||
<li><a href="https://www.amqp.org/">AMQP</a> - Advanced Message Queuing
|
||
Protocol.</li>
|
||
<li><a href="https://mqtt.org/">MQTT</a> - MQ Telemetry Transport.</li>
|
||
<li><a href="https://stomp.github.io/">STOMP</a> - Simple Text Oriented
|
||
Messaging Protocol.</li>
|
||
</ul>
|
||
<h3 id="security-1">Security</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://datatracker.ietf.org/doc/html/draft-ietf-gnap-core-protocol">GNAP</a>
|
||
- Grant Negotiation and Authorization Protocol defines a mechanism for
|
||
delegating authorization to a piece of software, and conveying that
|
||
delegation to the software. This delegation can include access to a set
|
||
of APIs as well as information passed directly to the
|
||
software.<sup>DRAFT</sup></li>
|
||
<li><a href="http://openid.net/connect/">OIDCONN</a> - OpenID Connect
|
||
1.0 is a simple identity layer on top of the OAuth 2.0 protocol. It
|
||
allows clients to verify the identity of the end-user based on the
|
||
authentication performed by an Authorization Server, as well as to
|
||
obtain basic profile information about the end-user in an interoperable
|
||
and REST-like manner.</li>
|
||
<li><a href="https://paseto.io/">PASETO</a> - Paseto is everything you
|
||
love about JOSE (JWT, JWE, JWS) without any of the many design deficits
|
||
that plague the JOSE standards. <sup>DRAFT</sup></li>
|
||
<li><a href="https://tools.ietf.org/html/rfc5246">RFC5246</a> - The
|
||
Transport Layer Security (TLS) Protocol Version 1.2.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc6066">RFC6066</a> - TLS
|
||
Extensions.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc6347">RFC6347</a> - Datagram
|
||
Transport Layer Security Version 1.2.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc6749">RFC6749</a> - The
|
||
OAuth 2.0 authorization framework.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc6962">RFC6962</a> -
|
||
Certificate transparency.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7515">RFC7515</a> - JSON Web
|
||
Signature (JWS) represents content secured with digital signatures or
|
||
Message Authentication Codes (MACs) using JSON-based data
|
||
structures.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7519">RFC7519</a> - JSON Web
|
||
Token (JWT) is a compact, URL-safe means of representing claims to be
|
||
transferred between two parties.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7642">RFC7642</a> - SCIM:
|
||
Definitions, overview, concepts, and requirements.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7643">RFC7643</a> - SCIM:
|
||
Core Schema, provides a platform-neutral schema and extension model for
|
||
representing users and groups.</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7644">RFC7644</a> - SCIM:
|
||
Protocol, an application-level, REST protocol for provisioning and
|
||
managing identity data on the web.</li>
|
||
</ul>
|
||
<h3 id="service-discovery">Service Discovery</h3>
|
||
<ul>
|
||
<li><a href="https://datatracker.ietf.org/doc/html/rfc6763">DNS-SD</a> -
|
||
Mechanism for clients to discover a list of named instances of a
|
||
service, using standard DNS queries.</li>
|
||
<li><a href="https://datatracker.ietf.org/doc/html/rfc2782">RFC2782</a>
|
||
- A DNS RR for specifying the location of services (DNS SRV).</li>
|
||
</ul>
|
||
<h3 id="data-formats">Data Formats</h3>
|
||
<ul>
|
||
<li><a href="https://tools.ietf.org/html/rfc4627">RFC4627</a> -
|
||
JavaScript Object Notation (JSON).</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc7049">RFC7049</a> - Concise
|
||
Binary Object Representation (CBOR).</li>
|
||
<li><a href="http://bsonspec.org/">BSON</a> - Binary JSON (BSON).</li>
|
||
<li><a href="http://json-ld.org/">JSON-LD</a> - JSON for Linking
|
||
Data.</li>
|
||
<li><a
|
||
href="https://github.com/FIXTradingCommunity/fix-simple-binary-encoding">SBE</a>
|
||
- Simple Binary Encoding (SBE).</li>
|
||
<li><a
|
||
href="https://github.com/msgpack/msgpack/blob/master/spec.md">MSGPACK</a>
|
||
- MessagePack Specification.</li>
|
||
</ul>
|
||
<h3 id="vocabularies">Vocabularies</h3>
|
||
<ul>
|
||
<li><a href="http://json-schema.org/">JSON Schema</a> - Vocabulary that
|
||
allows you to annotate and validate JSON documents.</li>
|
||
<li><a href="http://schema.org/">Schema.org</a> - Collaborative,
|
||
community activity with a mission to create, maintain, and promote
|
||
schemas for structured data on the Internet, on web pages, in email
|
||
messages, and beyond.</li>
|
||
</ul>
|
||
<h3 id="unicode">Unicode</h3>
|
||
<ul>
|
||
<li><a href="http://www.unicode.org/versions/Unicode8.0.0/">UNIV8</a> -
|
||
The Unicode Consortium. The Unicode Standard, Version 8.0.0, (Mountain
|
||
View, CA: The Unicode Consortium, 2015. ISBN 978-1-936213-10-8).</li>
|
||
<li><a href="https://tools.ietf.org/html/rfc3629">RFC3629</a> - UTF-8, a
|
||
transformation format of ISO 10646.</li>
|
||
</ul>
|
||
<h2 id="organization-design-team-dynamics">Organization Design / Team
|
||
Dynamics</h2>
|
||
<ul>
|
||
<li><a href="http://www.melconway.com/Home/pdf/committees.pdf">How Do
|
||
Committees Invent?</a> :small_orange_diamond:<sup>PDF</sup> - Melvin E.
|
||
Conway, Datamation magazine 1968. The original article defining Conway’s
|
||
Law.</li>
|
||
<li><a
|
||
href="https://microservices.io/patterns/decomposition/service-per-team.html">Service
|
||
per Team</a> - Each team is responsible for one or more business
|
||
functions (e.g. business capabilities). A team owns a code base
|
||
consisting of one or more modules. Its code base is sized so as to not
|
||
exceed the cognitive capacity of team. The team deploys its code as one
|
||
or more services. A team should have exactly one service unless there is
|
||
a proven need to have multiple services.</li>
|
||
<li><a href="https://www.youtube.com/watch?v=haejb5rzKsM">Start with
|
||
Team Cognitive Load - Team Topologies</a>
|
||
:small_red_triangle:<sup>YT</sup> - DOES19 London. The “monoliths vs
|
||
microservices” debate often focuses on technological aspects, ignoring
|
||
strategy and team dynamics. Instead of technology, smart-thinking
|
||
organizations are beginning with team cognitive load as the guiding
|
||
principle for modern software. In this talk, we explain how and why,
|
||
illustrated by real case studies.</li>
|
||
</ul>
|
||
<h2 id="enterprise-verticals">Enterprise & Verticals</h2>
|
||
<ul>
|
||
<li><a href="https://commercetools.com/">Commercetools</a> - Headless
|
||
commerce platform.</li>
|
||
<li><a href="https://www.infosysequinox.com/">Equinox</a> - Infosys
|
||
Equinox is a human-centric commerce and marketing platform that supports
|
||
rich, hyper-personalized experiences across any channel and
|
||
touchpoint.</li>
|
||
<li><a href="https://www.flamingo.me/">Flamingo</a> - Framework to build
|
||
flexible and modern e-commerce applications.</li>
|
||
<li><a href="https://medusajs.com/">Medusa</a> - Headless open source
|
||
commerce platform.</li>
|
||
</ul>
|
||
<h2 id="theory">Theory</h2>
|
||
<h3 id="articles-papers">Articles & Papers</h3>
|
||
<ul>
|
||
<li><a href="https://doi.org/10.3390/philosophies6040081">Autonomy,
|
||
Hyperconnectivity, and Residual Causality</a> - Philosophical
|
||
introduction to the design of adaptive hyperliminal systems through
|
||
complexity science theories.</li>
|
||
<li><a
|
||
href="https://github.com/binhnguyennus/awesome-scalability">Awesome
|
||
Scalability</a> :star: - An updated and organized reading list for
|
||
illustrating the patterns of scalable, reliable, and performant
|
||
large-scale systems. Concepts are explained in the articles of prominent
|
||
engineers and credible references. Case studies are taken from
|
||
battle-tested systems that serve millions to billions of users.</li>
|
||
<li><a
|
||
href="https://www.abhishek-tiwari.com/a-sidecar-for-your-service-mesh/">A
|
||
Sidecar for Your Service Mesh</a> - A short service mesh
|
||
introduction.</li>
|
||
<li><a
|
||
href="http://akfpartners.com/techblog/2008/05/08/splitting-applications-or-services-for-scale/">AKF
|
||
Scale Cube</a> - Model depicting the dimensions to scale a service.</li>
|
||
<li><a
|
||
href="https://cloudncode.blog/2016/07/22/msa-getting-started/">Building
|
||
Microservices? Here is What You Should Know</a> - A practical overview,
|
||
based on real-world experience, of what one would need to know in order
|
||
to build microservices.</li>
|
||
<li><a href="http://db.cs.berkeley.edu/papers/cidr11-bloom.pdf">CALM</a>
|
||
:small_orange_diamond:<sup>PDF</sup> - Consistency as logical
|
||
monotonicity.</li>
|
||
<li><a href="http://martinfowler.com/bliki/CanaryRelease.html">Canary
|
||
Release</a> - Technique to reduce the risk of introducing a new software
|
||
version in production by slowly rolling out the change to a small subset
|
||
of users before rolling it out to the entire infrastructure and making
|
||
it available to everybody.</li>
|
||
<li><a
|
||
href="http://blog.thislongrun.com/2015/03/the-cap-theorem-series.html">CAP
|
||
Theorem</a> - States that it is impossible for a distributed computer
|
||
system to simultaneously provide all three of the following guarantees:
|
||
Consistency, Availability and Partition tolerance.</li>
|
||
<li><a href="https://arxiv.org/pdf/1902.05870.pdf">Formal Foundations of
|
||
Serverless Computing</a> :small_orange_diamond:<sup>PDF</sup> - The
|
||
serverless computing abstraction exposes several low-level operational
|
||
details that make it hard for programmers to write and reason about
|
||
their code. This paper sheds light on this problem by presenting λ, an
|
||
operational semantics of the essence of serverless computing.</li>
|
||
<li><a
|
||
href="https://www.marcobehler.com/guides/java-microservices-a-practical-guide">Java
|
||
Microservices: A Practical Guide</a> - You can use this guide to
|
||
understand what Java microservices are, how you architect and build
|
||
them. Also: A look at Java microservice libraries & common
|
||
questions.</li>
|
||
<li><a
|
||
href="http://martinfowler.com/articles/microservices.html">Microservice
|
||
Architecture</a> - Particular way of designing software applications as
|
||
suites of independently deployable services.</li>
|
||
<li><a
|
||
href="https://www.f5.com/content/dam/f5/corp/global/pdf/ebooks/Microservices_Designing_Deploying.pdf">Microservices
|
||
- From Design to Deployment</a> :small_orange_diamond:<sup>PDF</sup> -
|
||
F5’s seven-part series on microservices.</li>
|
||
<li><a
|
||
href="https://riak.com/posts/technical/microservices-please-dont/">Microservices
|
||
– Please, don’t</a> - Critical advice about some problems regarding a
|
||
microservices approach.</li>
|
||
<li><a
|
||
href="https://dzone.com/refcardz/getting-started-with-microservices">Microservices
|
||
RefCard</a> - Getting started with microservices.</li>
|
||
<li><a
|
||
href="http://martinfowler.com/articles/microservice-trade-offs.html">Microservices
|
||
Trade-Offs</a> - Guide to ponder costs and benefits of the mircoservices
|
||
architectural style.</li>
|
||
<li><a href="http://www.reactivemanifesto.org/">Reactive Manifesto</a> -
|
||
Reactive systems definition.</li>
|
||
<li><a href="http://www.reactive-streams.org/">Reactive Streams</a> -
|
||
Initiative to provide a standard for asynchronous stream processing with
|
||
non-blocking back pressure.</li>
|
||
<li><a
|
||
href="http://resources.1060research.com/docs/2015/Resource-Oriented-Computing-Adaptive-Systems-ROCAS-1.2.pdf">ROCAS</a>
|
||
:small_orange_diamond:<sup>PDF</sup> - Resource Oriented Computing for
|
||
Adaptive Systems.</li>
|
||
<li><a
|
||
href="http://ceur-ws.org/Vol-746/IWSECO2011-6-DengYu.pdf">SECO</a>
|
||
:small_orange_diamond:<sup>PDF</sup> - Understanding software
|
||
ecosystems: a strategic modeling approach.</li>
|
||
<li><a
|
||
href="http://martinfowler.com/articles/microservice-testing/">Testing
|
||
Strategies in a Microservice Architecture</a> - Approaches for managing
|
||
the additional testing complexity of multiple independently deployable
|
||
components.</li>
|
||
<li><a href="http://monkey.org/~marius/funsrv.pdf">Your Server as a
|
||
Function</a> :small_orange_diamond:<sup>PDF</sup> - Describes three
|
||
abstractions which combine to present a powerful programming model for
|
||
building safe, modular, and efficient server software: Composable
|
||
futures, services and filters.</li>
|
||
</ul>
|
||
<h3 id="sites-organizations">Sites & Organizations</h3>
|
||
<ul>
|
||
<li><a href="https://www.cncf.io/">Cloud Native Computing Foundation</a>
|
||
- The Cloud Native Computing Foundation builds sustainable ecosystems
|
||
and fosters a community around a constellation of high-quality projects
|
||
that orchestrate containers as part of a microservices
|
||
architecture.</li>
|
||
<li><a href="https://landscape.cncf.io/">CNCF Cloud Native Interactive
|
||
Landscape</a> - Interactive landscape of cloud native technologies.</li>
|
||
<li><a href="http://martinfowler.com/microservices/">Microservices
|
||
Resource Guide</a> - Martin Fowler’s choice of articles, videos, books,
|
||
and podcasts that can teach you more about the microservices
|
||
architectural style.</li>
|
||
<li><a href="http://microservices.io/">Microservice Patterns</a> -
|
||
Microservice architecture patterns and best practices.</li>
|
||
<li><a
|
||
href="https://www.oreilly.com/ideas/microservices-antipatterns-and-pitfalls">Microservice
|
||
Antipatterns and Pitfalls</a> - Microservice mostly known antipatterns
|
||
and pitfalls.</li>
|
||
</ul>
|
||
<h2 id="license">License</h2>
|
||
<p><a href="http://creativecommons.org/publicdomain/zero/1.0/"><img
|
||
src="http://i.creativecommons.org/p/zero/1.0/88x31.png"
|
||
alt="CC0" /></a></p>
|
||
<h2 id="contributing">Contributing</h2>
|
||
<p>Please, read the <a
|
||
href="https://github.com/mfornos/awesome-microservices/blob/master/CONTRIBUTING.md">Contribution
|
||
Guidelines</a> before submitting your suggestion.</p>
|
||
<p>Feel free to <a
|
||
href="https://github.com/mfornos/awesome-microservices/issues">open an
|
||
issue</a> or <a
|
||
href="https://github.com/mfornos/awesome-microservices/pulls">create a
|
||
pull request</a> with your additions.</p>
|
||
<p>:star2: Thank you!</p>
|
||
<p><a
|
||
href="https://github.com/mfornos/awesome-microservices">microservices.md
|
||
Github</a></p>
|