Cote is a Node.js library for building zero-configuration microservices.
cote lets you write zero-configuration microservices in Node.js without nginx, haproxy, redis, rabbitmq or anything else. It is batteries — and chargers! — included.
Cote allows you to implement hassle-free microservices by utilizing auto-discovery and other techniques. Typically, in a microservices system, the application is broken into smaller chunks that communicate with each other.
Cote helps you build such a system by providing you several key components that you can use for service communication.
- Zero-configuration: no IP addresses, no ports, no routing to configure
- Decentralized: No fixed parts, no “manager” nodes, no single point of failure
- Auto-discovery: Services discover each other without a central bookkeeper
- Fault-tolerant: Don’t lose any requests when a service is down
- Scalable: Horizontally scale to any number of machines
- Performant: Process thousands of messages per second
- Humanized API: Extremely simple to get started with a reasonable API!
Cote also replaces HTTP communication. Microservices architecture is meant for hundreds of internal services communicating with each other. That being the case, a protocol like HTTP is cumbersome and heavy for communication that doesn’t need 90% of HTTP’s features. Therefore, cote uses a very light protocol over plain old TCP sockets for communication, making it fast, effective and most importantly, cheap.
Cote plays very well with Docker, taking advantage of its network overlay features.
Cote is battle-tested, solid and has been running in production across thousands of services since its inception in 2013. cote follows Semantic Versioning and although it’s production-ready, they haven’t released a version 1.0.0 yet. Although cote added many features in time, there hasn’t been a single breaking API change since the beginning.