User:AndMaz/sandbox

MoleculerJS, or simply Moleculer, is an open-source Node.js microservices framework for building  distributed web applications.

Overview
Moleculer is a progressive microservices that supports multiple software architectures: monolith, microservices or mixed. Moleculer provides out-of-the box most of the features required to build a distributed web application, some them are listed below:
 * Request-Reply Concept
 * Streams
 * Event-driven architecture with balancing
 * Service registry & dynamic service discovery
 * Load balanced requests & events (Round-Robin, Random, CPU-usage, Latency)
 * Fault tolerance features ( Circuit Breaker, Bulkhead, Retry, Timeout, Fallback)
 * Middlewares
 * Versioned services
 * Service mixins
 * Caching (memory, Redis)
 * Pluggable transporters ( TCP, NATS, MQTT, Redis, NATS Streaming,  Kafka)
 * Pluggable serializers (JSON, Avro,  MessagePack,  Protocol Buffers,  Thrift)
 * Pluggable data validator
 * All nodes are equal, no master/leader node
 * Built-in metrics with multiple exporters (Prometheus, Datadog, StatsD)
 * Built-in tracing support with multiple exporters(Jaeger, Zipkin, Datadog)
 * HTTP Gateway

Polyglot Implementations
The open-source community is also working on porting Moleculer to Java, Go and Ruby languages.

Popularity
Moleculer is used by Ghost, Shareworks by Morgan Stanley,  Sonda and more. Microsoft's Web Template Studio also provides support for Moleculer.