Microbus
is a holistic open source framework for the development, testing, deployment and operation of microservices at scale.
Microbus
combines best-in-class OSS, tooling and best practices into an elevated engineering experience that eliminates much of the complexity of the conventional practice.
Microbus
’s runtime substrate is highly performant, strongly reliable and horizontally scalable.
Microbus
conforms to industry standards and interoperates smoothly with existing systems.
The name Microbus
stems from the fact that micro
services communicate with each other over a messaging bus
.
The bus enables both the request/response and publish/subscribe patterns of communications
and is also responsible for load balancing and service discovery.
Holistic adj /hō-ˈli-stik/ : characterized by the belief that the parts of something are interconnected and can be explained only by reference to the whole.
Microbus
is essentially a software library you use as a foundation for your microservice solution.
And because it is open sourced, you can feel confident betting your business on it.
Microbus
delivers a dynamic range of tools designed to optimize the full SDLC of microservice solutions.
Run and debug an entire solution comprising a multitude of microservices on your local development machine, just as easily as if it were a monolith.
Speed up development with code generation.
Spin up the actual downstream microservices along with the microservice being tested into a single process and execute full live integration tests
From a local development machine to a multi-region cloud deployment, Microbus
’s adaptable topology grows with your needs. No code change required.
Observe system internal with the help of distributed tracing, metrics dashboards, structured logging and error capture.
Microservices are the architecture best suited to deal with the technical and organizational challenges of a growing business.
Microbus
helps you build and operate large solutions comprising dozens or even hundreds of microservices by addressing both the engineering and the operational challenges inherent in such complex systems. Unlike many other frameworks, it is not merely a helper library for coding of single microservices.
Microbus
is powered by a small curated set of best-in-class OSS technologies integrated to work together in unison.
The small number of moving parts keeps the learning curve short and operational cost and complexity low.
A powerful code generator takes care of most of the repetitive mundane work, freeing engineers to do meaningful work and deliver business value faster.
Microbus
implements best practices that pave the road and steer engineers away from common pitfalls.
In Microbus
, microservices are not large memory-gobbling processes but rather compact worker goroutines that ultimately consume messages from a queue.
This quality allows running, testing and debugging an entire solution comprising a multitude of microservices on a local development machine.
In fact, it takes only a few seconds to build and restart an entire solution, so code iterations can be made quickly.
A powerful code generator takes care of most of the repetitive mundane work, freeing engineers to do meaningful work and deliver business value faster.
Observability tools such as distributed tracing, metrics dashboards, structured logging and error capture provide visibility into the internals of the system, allowing precision identification of bugs and performance issues.
Microbus
’s functionality is exposed through a simple API that is easy to learn. Engineers are able get up to speed quickly and become productive without having to learn the internals of the system. This principle of simplicity is also carried over to Microbus
’s runtime where the small number of moving parts dramatically reduce the operational complexity.
The conventional practice of developing microservices is a jumble of sophisticated systems that no one truly fully understands. The high level of complexity introduces friction to the software development lifecycle, significant operational costs, and failure points that cause unexplained outages. It takes a small army of engineers to keep the system afloat.
Here’s a list of some of the technologies commonly used today:
All microservices running on Microbus
comply with the same set of rules for unicast or multicast communications, configuration, observability, and more. This consistent behavior makes it easier to reason about the accuracy of the system, guaranteeing smooth interoperability, straightforward maintainability and verifiable stability.
Benchmarks indicate Microbus
is capable of processing upward of 94,500 req/sec on a 10-core MacBook Pro M1 CPU, connected to a messaging bus on localhost.
Reliable communication is an imperative quality of any distributed system. In Microbus
, microservices communicate with each other over a messaging bus. Each microservice connects to the bus over a persistent multiplexed connection that is monitored constantly and kept alive with automatic reconnects if required. Locality-aware routing, ack of fail fast and graceful shutdowns further enhance the reliability of communications.
It is also imperative that a distributed system remains online at all times. Microbus
achieves that by capturing all errors and panics so that malfunctioning microservices do not crash.
As a framework, Microbus
is expected to run business-critical solutions. It is thoroughly-tested by hundreds of unit tests.
Components at all layers of Microbus
are horizontally scalable. There is no single points of failure or bottlenecks. At the transport layer, the messaging bus forms a full mesh so that any message traverses no more than two nodes regardless of the size of the cluster. At the application layer, dynamic service discovery makes it trivial to add replicas of microservices and scale the solution.
Microbus
conforms to industry standards.
Because Microbus
conforms to the familiar HTTP protocol for service-to-service communications, it is a snap to process incoming HTTP requests from non-Microbus
microservices or from JavaScript clients, or conversely make an outbound call to non-Microbus
microservices or third-party web services.
Microbus
is easily deployable as containers running on a Kubernetes cluster.