From 183f4f793476ed2fcf9dd6185984a244302e2bc4 Mon Sep 17 00:00:00 2001 From: Sinisa Louc Date: Tue, 6 Dec 2016 18:23:37 +0100 Subject: [PATCH 01/18] Updated readme (added http4s scala library) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 049f326..a1723ce 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Akka HTTP](http://doc.akka.io/docs/akka/current/scala/http) - Open source toolkit for building REST/HTTP-based integration layers on top of Scala and Akka (will replace Spray). - [Colossus](https://github.com/tumblr/colossus) - I/O and microservice library for Scala. - [Finatra](http://twitter.github.io/finatra/) - Fast, testable, Scala HTTP services built on Twitter-Server and Finagle. +- [Http4s](http://http4s.org/) - A minimal, idiomatic Scala interface for HTTP - [Play](https://www.playframework.com/) - The high velocity web framework for Java and Scala. - [Scalatra](http://www.scalatra.org/) - Simple, accessible and free web micro-framework. - [Skinny Micro](https://github.com/skinny-framework/skinny-micro) - Micro-web framework to build servlet applications in Scala. From d40dc7cfa90df5776a4470080a80ff60e78723ec Mon Sep 17 00:00:00 2001 From: Sinisa Louc Date: Tue, 6 Dec 2016 18:38:05 +0100 Subject: [PATCH 02/18] Updated readme (fixed link for web.py) Changed link to web.py because it's (temporarily?) down. Changed from webpy.org to its github project page. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1723ce..a33c3a1 100644 --- a/README.md +++ b/README.md @@ -246,7 +246,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Nameko](https://github.com/onefinestay/nameko) - Python framework for building microservices. - [Tornado](http://www.tornadoweb.org/) - Web framework and asynchronous networking library. - [Twisted](https://twistedmatrix.com/trac/) - An Event-Drive Network Programming Engine. -- [web.py](http://webpy.org/) - Minimalist web framework for Python. +- [web.py](https://github.com/webpy/webpy/) - Minimalist web framework for Python. ### Ruby From 4cd202a3f05f7bc48ec8fbe370c98e13220a834e Mon Sep 17 00:00:00 2001 From: Marc Date: Tue, 6 Dec 2016 19:40:13 +0100 Subject: [PATCH 03/18] Changed Service Fabric to Scale Cube - closes #60 --- README.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a33c3a1..0046959 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Microserver](https://github.com/aol/micro-server) - Java 8 native, zero configuration, standards based, battle hardened library to run Java REST microservices. - [Orbit](http://orbit.bioware.com/) - Modern framework for JVM languages that makes it easier to build and maintain distributed and scalable online services. - [Quasar](https://github.com/puniverse/quasar) - Fibers, Channels and Actors for the JVM. -- [Service Fabric I/O](http://scalecube.io) - A microservices framework for the rapid development of distributed, resilient, reactive applications at scale. +- [Scale Cube](http://scalecube.io/) - Library for building resilient and reactive microservices with peer-to-peer service registry and discovery based on gossip protocol. - [Vert.X](http://vertx.io/) - Toolkit for building reactive applications on the JVM. - [Vert.X Toolbox](https://github.com/vert-x3/vertx-microservices-toolbox) - A set of Vert.x components to build reactive microservice applications. @@ -386,8 +386,7 @@ A curated list of Microservice Architecture related principles and technologies. ### Reactivity -- [Reactor.io](http://projectreactor.io) - A second-generation Reactive library for building non-blocking applications on -the JVM based on the Reactive Streams Specification. +- [Reactor.io](http://projectreactor.io) - A second-generation Reactive library for building non-blocking applications on the JVM based on the Reactive Streams Specification. - [Reactive Kafka](https://github.com/softwaremill/reactive-kafka) - Reactive Streams API for Apache Kafka. - [ReactiveX](http://reactivex.io/) - API for asynchronous programming with observable streams. Available for idiomatic Java, Scala, C#, C++, Clojure, JavaScript, Python, Groovy, JRuby, and others. - [Simple React](https://github.com/aol/simple-react) - Powerful future streams & asynchronous data structures for Java 8. @@ -415,8 +414,7 @@ the JVM based on the Reactive Streams Specification. - [Collectd](https://collectd.org/) - The system statistics collection daemon. - [Elastalert](https://github.com/yelp/elastalert) - Easy & flexible alerting for Elasticsearch. - [Ganglia](http://ganglia.info/) - A scalable distributed monitoring system for high-performance computing systems such as clusters and grids. -- [Grafana](http://grafana.org/) - An open source, feature rich metrics dashboard and graph editor for -Graphite, InfluxDB & OpenTSDB. +- [Grafana](http://grafana.org/) - An open source, feature rich metrics dashboard and graph editor for Graphite, InfluxDB & OpenTSDB. - [Graphite](http://graphite.wikidot.com/) - Scalable realtime graphing. - [Parallec](https://github.com/eBay/parallec) - Fast parallel asynchronous HTTP/SSH/TCP/Ping client Java library. - [Prometheus](http://prometheus.io/) - An open source service monitoring system and time series database. @@ -466,8 +464,7 @@ Graphite, InfluxDB & OpenTSDB. - [AWS CodeDeploy](http://aws.amazon.com/codedeploy/) - Deployment service that enables developers to automate the deployment of applications to instances and to update the applications as required. - [AWS OpsWorks](http://aws.amazon.com/opsworks/) - Provides a simple and flexible way to create and manage stacks and applications. - [Buddy](https://buddy.works/) - The Git and Continuous Delivery Platform. -- [Codeship](https://codeship.com/) - Hosted continuous delivery platform that takes care -of the testing and deployment process. +- [Codeship](https://codeship.com/) - Hosted continuous delivery platform that takes care of the testing and deployment process. - [Travis](https://travis-ci.org/) - Continuous integration and deployment service. @@ -605,8 +602,7 @@ of the testing and deployment process. - [Reactive Manifesto](http://www.reactivemanifesto.org/) - Reactive systems definition. - [Reactive Streams](http://www.reactive-streams.org/) - Initiative to provide a standard for asynchronous stream processing with non-blocking back pressure. - [ROCAS](http://resources.1060research.com/docs/2015/Resource-Oriented-Computing-Adaptive-Systems-ROCAS-1.2.pdf) - Resource Oriented Computing for Adaptive Systems. :small_orange_diamond:PDF -- [SECO](http://ceur-ws.org/Vol-746/IWSECO2011-6-DengYu.pdf) - Understanding software ecosystems: -a strategic modeling approach. :small_orange_diamond:PDF +- [SECO](http://ceur-ws.org/Vol-746/IWSECO2011-6-DengYu.pdf) - Understanding software ecosystems: a strategic modeling approach. :small_orange_diamond:PDF - [Service Discovery in a Microservice Architecture](https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/) - Overview of discovery and registration patterns. - [Testing Strategies in a Microservice Architecture](http://martinfowler.com/articles/microservice-testing/) - Approaches for managing the additional testing complexity of multiple independently deployable components. - [Your Server as a Function](http://monkey.org/~marius/funsrv.pdf) - Describes three abstractions which combine to present a powerful programming model for building safe, modular, and efficient server software: Composable futures, services and filters. :small_orange_diamond:PDF From 98dc612d7720d5c77100c732a2046378c1602b8a Mon Sep 17 00:00:00 2001 From: Milica Date: Tue, 6 Dec 2016 20:16:52 +0100 Subject: [PATCH 04/18] Adding Semaphore on the list of hosted CI/CD services --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0046959..2219f98 100644 --- a/README.md +++ b/README.md @@ -465,6 +465,7 @@ A curated list of Microservice Architecture related principles and technologies. - [AWS OpsWorks](http://aws.amazon.com/opsworks/) - Provides a simple and flexible way to create and manage stacks and applications. - [Buddy](https://buddy.works/) - The Git and Continuous Delivery Platform. - [Codeship](https://codeship.com/) - Hosted continuous delivery platform that takes care of the testing and deployment process. +- [Semaphore](https://semaphoreci.com/) - Continuous integration and deployment service with native Docker support. - [Travis](https://travis-ci.org/) - Continuous integration and deployment service. From 689624f7030a7037d5333b0a67d76e20ba3794df Mon Sep 17 00:00:00 2001 From: Marc Date: Thu, 8 Dec 2016 12:59:55 +0100 Subject: [PATCH 05/18] Added Palantir's OS technologies Includes AtlasDB and HTTP-Remoting --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2219f98..5bb9ab4 100644 --- a/README.md +++ b/README.md @@ -192,8 +192,9 @@ A curated list of Microservice Architecture related principles and technologies. - [Airlift](https://github.com/airlift/airlift) - Framework for building REST services in Java. - [Disruptor](https://github.com/LMAX-Exchange/disruptor) - A High Performance Inter-Thread Messaging Library. - [Dropwizard](https://dropwizard.github.io/) - Java framework for developing ops-friendly, high-performance, RESTful web services. +- [HTTP Remoting](https://github.com/palantir/http-remoting) - 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. - [Jersey](https://jersey.java.net/) - RESTful Web Services in Java. JAX-RS (JSR 311 & JSR 339) Reference Implementation. -- [MSF4J](https://github.com/wso2/msf4j) - High throughput & low memory footprint Java microservices framework. +- [MSF4J](htps://github.com/wso2/msf4j) - High throughput & low memory footprint Java microservices framework. - [QBit](https://github.com/advantageous/qbit) - Reactive programming library for building microservices. - [Ratpack](https://ratpack.io/) - Set of Java libraries that facilitate fast, efficient, evolvable and well tested HTTP applications. specific support for the Groovy language is provided. - [Restlet](http://restlet.com/) - Helps Java developers build web APIs that follow the REST architecture style. @@ -368,6 +369,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Aerospike](http://www.aerospike.com/) - High performance NoSQL database delivering speed at scale. - [ArangoDB](https://www.arangodb.com/) - A distributed free and open source database with a flexible data model for documents, graphs, and key-values. +- [AtlasDB](https://github.com/palantir/atlasdb) - Transactional layer on top of a key value store. . - [ClickHouse](https://clickhouse.yandex/) - Column-oriented database management system that allows generating analytical data reports in real time. - [Couchbase](http://www.couchbase.com/) - A distributed database engineered for performance, scalability, and simplified administration. - [Crate](https://crate.io/) - Scalable SQL database with the NoSQL goodies. From 774f2f1eb594a893a820df3aebec4462799ff682 Mon Sep 17 00:00:00 2001 From: Marc Date: Thu, 8 Dec 2016 13:12:00 +0100 Subject: [PATCH 06/18] Caddy and minor edits --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5bb9ab4..7e1da38 100644 --- a/README.md +++ b/README.md @@ -259,6 +259,7 @@ A curated list of Microservice Architecture related principles and technologies. ### API Gateways / Edge Services +- [Caddy](https://caddyserver.com/) - Alternative web server that is easy to configure and use. - [Camel](http://camel.apache.org/) - 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. - [Fabio](https://github.com/eBay/fabio) - A fast, modern, zero-conf load balancing HTTP/S router for deploying microservices managed by Consul. - [HAProxy](http://www.haproxy.org/) - Reliable, high Performance TCP/HTTP load balancer. @@ -369,7 +370,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Aerospike](http://www.aerospike.com/) - High performance NoSQL database delivering speed at scale. - [ArangoDB](https://www.arangodb.com/) - A distributed free and open source database with a flexible data model for documents, graphs, and key-values. -- [AtlasDB](https://github.com/palantir/atlasdb) - Transactional layer on top of a key value store. . +- [AtlasDB](https://github.com/palantir/atlasdb) - Transactional layer on top of a key value store. - [ClickHouse](https://clickhouse.yandex/) - Column-oriented database management system that allows generating analytical data reports in real time. - [Couchbase](http://www.couchbase.com/) - A distributed database engineered for performance, scalability, and simplified administration. - [Crate](https://crate.io/) - Scalable SQL database with the NoSQL goodies. @@ -470,7 +471,6 @@ A curated list of Microservice Architecture related principles and technologies. - [Semaphore](https://semaphoreci.com/) - Continuous integration and deployment service with native Docker support. - [Travis](https://travis-ci.org/) - Continuous integration and deployment service. - ### Lightweight - [Capsule](https://github.com/puniverse/capsule) - Packaging and deployment tool for JVM applications. From a8e939257baab6782e31d16cf960bf45e4ba1034 Mon Sep 17 00:00:00 2001 From: Marc Date: Thu, 8 Dec 2016 14:17:29 +0100 Subject: [PATCH 07/18] "Enterprise & Verticals" category: Predix and Interact --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7e1da38..78aaa56 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Vocabularies](#vocabularies) - [Unicode](#unicode) - [Real Life Stories](#real-life-stories) +- [Enterprise & Verticals](#enterprise--verticals) - [Theory](#theory) - [Articles & Papers](#articles--papers) - [Talks](#talks) @@ -259,7 +260,7 @@ A curated list of Microservice Architecture related principles and technologies. ### API Gateways / Edge Services -- [Caddy](https://caddyserver.com/) - Alternative web server that is easy to configure and use. +- [Caddy](https://caddyserver.com/) - Extensible HTTP/2 web server with automatic HTTPS. - [Camel](http://camel.apache.org/) - 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. - [Fabio](https://github.com/eBay/fabio) - A fast, modern, zero-conf load balancing HTTP/S router for deploying microservices managed by Consul. - [HAProxy](http://www.haproxy.org/) - Reliable, high Performance TCP/HTTP load balancer. @@ -588,6 +589,11 @@ A curated list of Microservice Architecture related principles and technologies. - [Monolith first](http://martinfowler.com/bliki/MonolithFirst.html) - [Scaling microservices at Gilt with Scala, Docker and AWS](http://www.infoq.com/news/2015/04/scaling-microservices-gilt) +## Enterprise & Verticals + +- [Interact](https://interact.io/) - CRM microservices for rapid delivery of tailored CRM Solutions. +- [Predix](https://predix.io/) - Industrial microservices platform. + ## Theory ### Articles & Papers From 5cc717f19b794e92a97745b3175a43bdf130e5ce Mon Sep 17 00:00:00 2001 From: Marc Date: Thu, 8 Dec 2016 14:22:28 +0100 Subject: [PATCH 08/18] Edit Interact description in "Enterprise & Verticals" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78aaa56..9b7844e 100644 --- a/README.md +++ b/README.md @@ -591,7 +591,7 @@ A curated list of Microservice Architecture related principles and technologies. ## Enterprise & Verticals -- [Interact](https://interact.io/) - CRM microservices for rapid delivery of tailored CRM Solutions. +- [Interact](https://interact.io/) - CRM microservices for rapid delivery of tailored solutions. - [Predix](https://predix.io/) - Industrial microservices platform. ## Theory From d335351bb519a0f2d5bfe57cacbde03185ad1837 Mon Sep 17 00:00:00 2001 From: Marc Date: Fri, 9 Dec 2016 22:47:15 +0100 Subject: [PATCH 09/18] =?UTF-8?q?Adds=20"Microservices=20=E2=80=93=20Pleas?= =?UTF-8?q?e,=20don=E2=80=99t"=20in=20articles.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9b7844e..121b27c 100644 --- a/README.md +++ b/README.md @@ -606,6 +606,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Hexagonal Architecture](http://alistair.cockburn.us/Hexagonal+architecture) - Allows an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases. - [Microservice Architecture](http://martinfowler.com/articles/microservices.html) - Particular way of designing software applications as suites of independently deployable services. - [Microservices and SOA](http://www.oracle.com/technetwork/issue-archive/2015/15-mar/o25architect-2458702.html) - Similarities, differences, and where we go from here. +- [Microservices – Please, don’t](http://basho.com/posts/technical/microservices-please-dont/) - Critical advice about some problems regarding a microservices approach. - [Microservices RefCard](https://dzone.com/refcardz/getting-started-with-microservices) - Getting started with microservices. - [Microservices Trade-Offs](http://martinfowler.com/articles/microservice-trade-offs.html) - Guide to ponder costs and benefits of the mircoservices architectural style. - [Reactive Manifesto](http://www.reactivemanifesto.org/) - Reactive systems definition. From 3088e742a68cb4420b0873abfeb6f9eef3049e55 Mon Sep 17 00:00:00 2001 From: Marc Date: Sat, 10 Dec 2016 13:33:53 +0100 Subject: [PATCH 10/18] Lightbend and pruning --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 121b27c..4edf00a 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Fabric8](http://fabric8.io/) - Open source microservices platform based on Docker, Kubernetes and Jenkins. Makes it easy to create, edit, deploy and manage microservices and go faster. - [Hook.io](https://hook.io/) - Open source hosting platform for microservices. - [Lattice](http://lattice.cf/) - Open source project for running containerized workloads on a cluster. Lattice bundles up http load-balancing, a cluster scheduler, log aggregation/streaming and health management into an easy-to-deploy and easy-to-use package. +- [Lightbend](https://www.lightbend.com/) - Platform for building scalable reactive systems on the JVM. - [Netflix OSS](https://netflix.github.io/) - Netflix open source software ecosystem. - [Spring Cloud Netflix](https://github.com/spring-cloud/spring-cloud-netflix) - Provides Netflix OSS integrations for Spring Boot apps through autoconfiguration and binding to the Spring Environment and other Spring programming model idioms. - [VAMP](http://vamp.io/) - Build, deploy and manage microservices with power and ease. @@ -149,9 +150,8 @@ A curated list of Microservice Architecture related principles and technologies. ### Go -- [Crudapi](https://github.com/sauerbraten/crudapi) - Go implementation of a RESTful JSON API exposing CRUD functionality relying on a custom storage. - [Echo](https://echo.labstack.com/) - Fast and unfancy HTTP server framework for Go. Up to 10x faster than the rest. -- [Gin](http://gin-gonic.github.io/gin/) - Web framework written in Golang. +- [Gizmo](https://github.com/nytimes/gizmo) - Microservices toolkit. - [Goa](https://github.com/goadesign/goa) - Design-based HTTP microservices in Go. - [Gocraft](https://github.com/gocraft/web) - A toolkit for building web apps. Includes routing, middleware stacks, logging and monitoring. - [Goji](https://goji.io/) - Minimalistic and flexible request multiplexer for Go. @@ -161,7 +161,6 @@ A curated list of Microservice Architecture related principles and technologies. - [Gorilla](http://www.gorillatoolkit.org/) - Web toolkit for the Go programming language. - [Kite](https://github.com/koding/kite) - Microservices framework in Go. - [Libchan](https://github.com/docker/libchan) - Ultra-lightweight networking library which lets network services communicate in the same way that goroutines communicate using channels. -- [Macaron](https://go-macaron.com/) - Modular web framework in Go. - [Micro](https://github.com/micro/micro) - A microservices toolchain in Go. - [Negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. - [Neutrino](https://github.com/neutrinoapp/neutrino) - Realtime/REST backend service. @@ -194,11 +193,12 @@ A curated list of Microservice Architecture related principles and technologies. - [Disruptor](https://github.com/LMAX-Exchange/disruptor) - A High Performance Inter-Thread Messaging Library. - [Dropwizard](https://dropwizard.github.io/) - Java framework for developing ops-friendly, high-performance, RESTful web services. - [HTTP Remoting](https://github.com/palantir/http-remoting) - 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. -- [Jersey](https://jersey.java.net/) - RESTful Web Services in Java. JAX-RS (JSR 311 & JSR 339) Reference Implementation. +- [Jersey](https://jersey.java.net/) - RESTful services in Java. JAX-RS (JSR 311 & JSR 339) Reference Implementation. - [MSF4J](htps://github.com/wso2/msf4j) - High throughput & low memory footprint Java microservices framework. - [QBit](https://github.com/advantageous/qbit) - Reactive programming library for building microservices. - [Ratpack](https://ratpack.io/) - Set of Java libraries that facilitate fast, efficient, evolvable and well tested HTTP applications. specific support for the Groovy language is provided. - [Restlet](http://restlet.com/) - Helps Java developers build web APIs that follow the REST architecture style. +- [Spark](http://sparkjava.com/) - A micro framework for creating web applications in Java 8 with minimal effort. - [Spring Boot](http://projects.spring.io/spring-boot/) - Makes it easy to create stand-alone, production-grade Spring based applications. #### Scala @@ -630,6 +630,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Microservices without the Servers](https://aws.amazon.com/blogs/compute/microservices-without-the-servers/) - Step by step demo-driven talk about serverless architecture. - Microservices in C#: [Part 1](http://insidethecpu.com/2015/07/17/microservices-in-c-part-1-building-and-testing/), [Part 2](http://insidethecpu.com/2015/07/31/microservices-in-c-part-2-consistent-message-delivery/), [Part 3](http://insidethecpu.com/2015/08/14/microservices-in-c-part-3-queue-pool-sizing/), [Part 4](http://insidethecpu.com/2015/08/28/microservices-in-c-part-4-scaling-out/), [Part 5](http://insidethecpu.com/2015/09/11/microservices-in-c-part-5-autoscaling/). - [Microservices with Python, RabbitMQ and Nameko](http://brunorocha.org/python/microservices-with-python-rabbitmq-and-nameko.html) +- [Reactive Microservices](https://github.com/theiterators/reactive-microservices) - Project showcasing different microservice communication styles using Scala, Akka, Play and other tools from Scala ecosystem. - [Using Packer and Ansible to build immutable infrastructure](https://blog.codeship.com/packer-ansible/) ### Books From c29d68655ae65eaabf2fa65bcb86b1aa6f40aea7 Mon Sep 17 00:00:00 2001 From: Marc Date: Sat, 10 Dec 2016 13:41:22 +0100 Subject: [PATCH 11/18] Minor corrections --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4edf00a..c139975 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ A curated list of Microservice Architecture related principles and technologies. ### Agnostic - [Apex](https://github.com/apex/apex) - Tool for deploying and managing AWS Lambda functions. With shims for languages not yet supported by Lambda, you can use Golang out of the box. -- [CoAP](http://coap.technology/impls.html) - Constrained Application Protocol implementations. +- [CoAP](http://coap.technology/impls.html) - Constrained application protocol implementations. - [GRPC](http://www.grpc.io/) - 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#. - [Hprose](http://github.com/hprose) - A very newbility RPC Library, support 25+ languages now. @@ -164,7 +164,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Micro](https://github.com/micro/micro) - A microservices toolchain in Go. - [Negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. - [Neutrino](https://github.com/neutrinoapp/neutrino) - Realtime/REST backend service. -- [RPCX](https://github.com/smallnest/rpcx) - A distributed RPC service framework based on net/rpc like alibaba Dubbo and weibo Motan. +- [RPCX](https://github.com/smallnest/rpcx) - A distributed RPC service framework based on NET/RPC like Alibaba Dubbo and Weibo Motan. - [Sleepy](https://github.com/dougblack/sleepy) - REST for go. - [Vamp-router](https://github.com/magneticio/vamp-router) - Service routing, load balancing and filtering application. - [Zerver](https://github.com/cosiner/zerver) - RESTful API framework. @@ -190,15 +190,15 @@ A curated list of Microservice Architecture related principles and technologies. #### Java - [Airlift](https://github.com/airlift/airlift) - Framework for building REST services in Java. -- [Disruptor](https://github.com/LMAX-Exchange/disruptor) - A High Performance Inter-Thread Messaging Library. +- [Disruptor](https://github.com/LMAX-Exchange/disruptor) - High-performance inter-thread messaging library. - [Dropwizard](https://dropwizard.github.io/) - Java framework for developing ops-friendly, high-performance, RESTful web services. - [HTTP Remoting](https://github.com/palantir/http-remoting) - 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. -- [Jersey](https://jersey.java.net/) - RESTful services in Java. JAX-RS (JSR 311 & JSR 339) Reference Implementation. +- [Jersey](https://jersey.java.net/) - RESTful services in Java. JAX-RS reference implementation. - [MSF4J](htps://github.com/wso2/msf4j) - High throughput & low memory footprint Java microservices framework. - [QBit](https://github.com/advantageous/qbit) - Reactive programming library for building microservices. - [Ratpack](https://ratpack.io/) - Set of Java libraries that facilitate fast, efficient, evolvable and well tested HTTP applications. specific support for the Groovy language is provided. - [Restlet](http://restlet.com/) - Helps Java developers build web APIs that follow the REST architecture style. -- [Spark](http://sparkjava.com/) - A micro framework for creating web applications in Java 8 with minimal effort. +- [Spark](http://sparkjava.com/) - A micro-framework for creating web applications in Java 8 with minimal effort. - [Spring Boot](http://projects.spring.io/spring-boot/) - Makes it easy to create stand-alone, production-grade Spring based applications. #### Scala From f8a5b4d693a7900eb6f7c83d9e8a70140343b58f Mon Sep 17 00:00:00 2001 From: Marc Date: Sat, 10 Dec 2016 13:46:35 +0100 Subject: [PATCH 12/18] Minor corrections --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c139975..ca1dd8e 100644 --- a/README.md +++ b/README.md @@ -243,12 +243,11 @@ A curated list of Microservice Architecture related principles and technologies. ### Python -- [Celery](http://www.celeryproject.org) - An asynchronous task queue/job queue based on distributed message passing. Focused on real-time operation and supports scheduling. - [Flask](http://flask.pocoo.org/) - Python framework for microservices based on Werkzeug and Jinja 2. - [Nameko](https://github.com/onefinestay/nameko) - Python framework for building microservices. - [Tornado](http://www.tornadoweb.org/) - Web framework and asynchronous networking library. -- [Twisted](https://twistedmatrix.com/trac/) - An Event-Drive Network Programming Engine. -- [web.py](https://github.com/webpy/webpy/) - Minimalist web framework for Python. +- [Twisted](https://twistedmatrix.com/trac/) - Event-driven network programming engine. +- [Web.py](https://github.com/webpy/webpy/) - Minimalist web framework for Python. ### Ruby @@ -304,6 +303,7 @@ A curated list of Microservice Architecture related principles and technologies. ### Job Schedulers / Workload Automation +- [Celery](http://www.celeryproject.org) - Asynchronous task queue/job queue based on distributed message passing. Focused on real-time operation and supports scheduling. - [Chronos](https://github.com/mesos/chronos) - Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules. - [Fenzo](https://github.com/Netflix/Fenzo) - Extensible scheduler for Mesos frameworks. - [JobScheduler](http://www.sos-berlin.com/jobscheduler) - Open Source solution for enterprise-level workload automation. It is used to launch executable files and shell scripts and to run database procedures automatically. From f712e061c1218ee8b76f5102bedad9bc4894157a Mon Sep 17 00:00:00 2001 From: Marc Date: Sun, 11 Dec 2016 21:14:32 +0100 Subject: [PATCH 13/18] "Coordination and Governance" section --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index ca1dd8e..ef4c39d 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Ruby](#ruby) - [Capabilities](#capabilities) - [API Gateways / Edge Services](#api-gateways--edge-services) + - [Coordination and Governance](#coordination-and-governance) - [Configuration and Discovery](#configuration-and-discovery) - [Security](#security) - [Job Schedulers / Workload Automation](#job-schedulers--workload-automation) @@ -274,6 +275,11 @@ A curated list of Microservice Architecture related principles and technologies. - [Vulcand](https://github.com/vulcand/vulcand) - Programmatic load balancer backed by Etcd. - [Zuul](https://github.com/Netflix/zuul) - An edge service that provides dynamic routing, monitoring, resiliency, security, and more. +### Coordination and Governance + +- [AWS Step Functions](https://aws.amazon.com/step-functions/) - Coordinate the components of distributed applications and microservices using visual workflows. :small_orange_diamond: commercial +- [Azuqua](https://azuqua.com/) - Orchestration and governance platform for distributed applications. :small_orange_diamond: commercial + ### Configuration and Discovery - [Consul](https://www.consul.io/) - Service discovery and configuration made easy. Distributed, highly available, and datacenter-aware. @@ -408,6 +414,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Mitmproxy](https://mitmproxy.org/) - An interactive console program that allows traffic flows to be intercepted, inspected, modified and replayed. - [Mountebank](http://www.mbtest.org/) - Cross-platform, multi-protocol test doubles over the wire. +- [Spring Cloud Contract](https://cloud.spring.io/spring-cloud-contract/) - TDD to the level of software architecture. - [VCR](https://github.com/vcr/vcr) - 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. - [Wilma](https://github.com/epam/Wilma) - Combined HTTP/HTTPS service stub and transparent proxy solution. - [WireMock](http://wiremock.org/) - 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. From f7a19a68122ce9ab74359ce78189a702d5d8f8be Mon Sep 17 00:00:00 2001 From: Marc Date: Sun, 11 Dec 2016 21:19:48 +0100 Subject: [PATCH 14/18] Move content qualifiers near the title --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ef4c39d..98af116 100644 --- a/README.md +++ b/README.md @@ -277,8 +277,8 @@ A curated list of Microservice Architecture related principles and technologies. ### Coordination and Governance -- [AWS Step Functions](https://aws.amazon.com/step-functions/) - Coordinate the components of distributed applications and microservices using visual workflows. :small_orange_diamond: commercial -- [Azuqua](https://azuqua.com/) - Orchestration and governance platform for distributed applications. :small_orange_diamond: commercial +- [AWS Step Functions](https://aws.amazon.com/step-functions/) :small_orange_diamond: commercial - Coordinate the components of distributed applications and microservices using visual workflows. +- [Azuqua](https://azuqua.com/) :small_orange_diamond: commercial - Orchestration and governance platform for distributed applications. ### Configuration and Discovery @@ -606,7 +606,7 @@ A curated list of Microservice Architecture related principles and technologies. ### Articles & Papers - [AKF Scale Cube](http://akfpartners.com/techblog/2008/05/08/splitting-applications-or-services-for-scale/) - Model depicting the dimensions to scale a service. -- [CALM](http://db.cs.berkeley.edu/papers/cidr11-bloom.pdf) - Consistency as logical monotonicity. :small_orange_diamond:PDF +- [CALM](http://db.cs.berkeley.edu/papers/cidr11-bloom.pdf) :small_orange_diamond:PDF - Consistency as logical monotonicity. - [Canary Release](http://martinfowler.com/bliki/CanaryRelease.html) - 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. - [CAP Theorem](http://blog.thislongrun.com/2015/03/the-cap-theorem-series.html) - States that it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees: Consistency, Availability and Partition tolerance. - [Cloud Design Patterns](https://msdn.microsoft.com/en-us/library/dn600223.aspx) - Contains twenty-four design patterns that are useful in cloud-hosted applications. Includes: Circuit Breaker, Competing Consumers, CQRS, Event Sourcing, Gatekeeper, Cache-Aside, etc. @@ -618,11 +618,11 @@ A curated list of Microservice Architecture related principles and technologies. - [Microservices Trade-Offs](http://martinfowler.com/articles/microservice-trade-offs.html) - Guide to ponder costs and benefits of the mircoservices architectural style. - [Reactive Manifesto](http://www.reactivemanifesto.org/) - Reactive systems definition. - [Reactive Streams](http://www.reactive-streams.org/) - Initiative to provide a standard for asynchronous stream processing with non-blocking back pressure. -- [ROCAS](http://resources.1060research.com/docs/2015/Resource-Oriented-Computing-Adaptive-Systems-ROCAS-1.2.pdf) - Resource Oriented Computing for Adaptive Systems. :small_orange_diamond:PDF -- [SECO](http://ceur-ws.org/Vol-746/IWSECO2011-6-DengYu.pdf) - Understanding software ecosystems: a strategic modeling approach. :small_orange_diamond:PDF +- [ROCAS](http://resources.1060research.com/docs/2015/Resource-Oriented-Computing-Adaptive-Systems-ROCAS-1.2.pdf) :small_orange_diamond:PDF - Resource Oriented Computing for Adaptive Systems. +- [SECO](http://ceur-ws.org/Vol-746/IWSECO2011-6-DengYu.pdf) :small_orange_diamond:PDF - Understanding software ecosystems: a strategic modeling approach. - [Service Discovery in a Microservice Architecture](https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/) - Overview of discovery and registration patterns. - [Testing Strategies in a Microservice Architecture](http://martinfowler.com/articles/microservice-testing/) - Approaches for managing the additional testing complexity of multiple independently deployable components. -- [Your Server as a Function](http://monkey.org/~marius/funsrv.pdf) - Describes three abstractions which combine to present a powerful programming model for building safe, modular, and efficient server software: Composable futures, services and filters. :small_orange_diamond:PDF +- [Your Server as a Function](http://monkey.org/~marius/funsrv.pdf) :small_orange_diamond:PDF - Describes three abstractions which combine to present a powerful programming model for building safe, modular, and efficient server software: Composable futures, services and filters. ### Talks @@ -642,7 +642,7 @@ A curated list of Microservice Architecture related principles and technologies. ### Books -- [Building Microservices](https://www.nginx.com/wp-content/uploads/2015/01/Building_Microservices_Nginx.pdf) - Building Microservices: Designing Fine-grained Systems. Sam Newman. Preview Edition. :small_orange_diamond:PDF +- [Building Microservices](https://www.nginx.com/wp-content/uploads/2015/01/Building_Microservices_Nginx.pdf) :small_orange_diamond:PDF - Building Microservices: Designing Fine-grained Systems. Sam Newman. Preview Edition. - [Microservice Architecture: Aligning Principles, Practices, and Culture](http://shop.oreilly.com/product/0636920050308.do) - Practical advice for the strategy and design of Microservices. - [Microservices from Theory to Practice](http://www.redbooks.ibm.com/abstracts/sg248275.html?Open) - Microservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Microservices Approach. IBM Redbooks publication. - [Migrating to Cloud Native Application Architectures](http://pivotal.io/platform/migrating-to-cloud-native-application-architectures-ebook) - This O’Reilly report defines the unique characteristics of cloud native application architectures such as microservices and twelve-factor applications. From 01cd6445afbcef9b010b2a7199ece05414de80df Mon Sep 17 00:00:00 2001 From: pasztorpisti Date: Sat, 7 Jan 2017 21:52:44 +0000 Subject: [PATCH 15/18] Add golang Nano framework --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 98af116..cb3c21a 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Kite](https://github.com/koding/kite) - Microservices framework in Go. - [Libchan](https://github.com/docker/libchan) - Ultra-lightweight networking library which lets network services communicate in the same way that goroutines communicate using channels. - [Micro](https://github.com/micro/micro) - A microservices toolchain in Go. +- [Nano](https://github.com/pasztorpisti/nano) - A minimalistic, transport-agnostic and testing-friendly microservice framework. - [Negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. - [Neutrino](https://github.com/neutrinoapp/neutrino) - Realtime/REST backend service. - [RPCX](https://github.com/smallnest/rpcx) - A distributed RPC service framework based on NET/RPC like Alibaba Dubbo and Weibo Motan. From 84c188b73a22a2cf3fca6bfdce1439c6f98108bd Mon Sep 17 00:00:00 2001 From: kahwai1984 Date: Thu, 12 Jan 2017 10:29:25 +0800 Subject: [PATCH 16/18] Add C# Category Add akka.net to C# category --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 98af116..af10086 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ A curated list of Microservice Architecture related principles and technologies. - [Agnostic](#agnostic) - [C](#c) - [C++](#c-1) + - [C#](#csharp) - [D](#d) - [Erlang VM](#erlang-vm) - [Go](#go) @@ -132,6 +133,10 @@ A curated list of Microservice Architecture related principles and technologies. - [Served](https://github.com/datasift/served) - C++ library for building high-performance RESTful web servers. - [ULib](https://github.com/stefanocasazza/ULib) - Highly optimized class framework for writing C++ applications. +### CSharp + +- [AKKA.net](http://getakka.net/) - Toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono. + ### D - [Vibe.d](http://vibed.org/) - Asynchronous I/O that doesn’t get in your way, written in D. From 59daf68771215fe25277acbba9af8f92730fdfdc Mon Sep 17 00:00:00 2001 From: kahwai1984 Date: Thu, 12 Jan 2017 10:30:26 +0800 Subject: [PATCH 17/18] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af10086..264d61c 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ A curated list of Microservice Architecture related principles and technologies. ### CSharp -- [AKKA.net](http://getakka.net/) - Toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono. +- [Akka.NET](http://getakka.net/) - Toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono. ### D From 422fc8c3cbe6eaec8c61609fc5b6a0cbf1336c2b Mon Sep 17 00:00:00 2001 From: Marc Date: Sat, 14 Jan 2017 18:31:56 +0100 Subject: [PATCH 18/18] Add Nancy and Microphone --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 74e6d4b..7fbad95 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ A curated list of Microservice Architecture related principles and technologies. ### CSharp - [Akka.NET](http://getakka.net/) - Toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET & Mono. +- [Nancy](http://nancyfx.org/) - Lightweight web framework. ### D @@ -294,7 +295,8 @@ A curated list of Microservice Architecture related principles and technologies. - [Doozer](https://github.com/ha/doozerd) - Highly-available, completely consistent store for small amounts of data. When the data changes, it can notify connected clients immediately. - [Etcd](https://github.com/coreos/etcd) - Highly-available key-value store for shared configuration and service discovery. - [Eureka](https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance) - 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. -- [Registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker. Supports pluggable service registries, which currently includes Consul, etcd and SkyDNS 2. +- [Microphone](https://github.com/rogeralsing/Microphone) - Lightweight .NET framework to run self hosting REST services using Web Api or NancyFx on top of a Consul or Etcd cluster. +- [Registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker. Supports pluggable service registries, which currently includes Consul, Etcd and SkyDNS 2. - [Shaman](https://github.com/nanopack/shaman) - Small, lightweight, api-driven DNS server. - [SkyDNS](https://github.com/skynetservices/skydns) - Distributed service for announcement and discovery of services built on top of etcd. It utilizes DNS queries to discover available services. - [SmartStack](https://github.com/airbnb/smartstack-cookbook) - Airbnb's automated service discovery and registration framework.