fabric

Mission Statement

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.

Microbus

The name Microbus stems from the fact that microservices 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

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.

Open Source Framework

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.

SDLC

Microbus delivers a dynamic range of tools designed to optimize the full SDLC of microservice solutions.

Develop

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.

Test

Spin up the actual downstream microservices along with the microservice being tested into a single process and execute full live integration tests

Deploy

From a local development machine to a multi-region cloud deployment, Microbus’s adaptable topology grows with your needs. No code change required.

Operate

Observe system internal with the help of distributed tracing, metrics dashboards, structured logging and error capture.

Why Microservices?

Microservices are the architecture best suited to deal with the technical and organizational challenges of a growing business.

At Scale

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.

Curated OSS

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.

Tooling

A powerful code generator takes care of most of the repetitive mundane work, freeing engineers to do meaningful work and deliver business value faster.

Best Practices

Microbus implements best practices that pave the road and steer engineers away from common pitfalls.

Elevated Engineering Experience

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.

Conventional Practice

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:

Runtime Substrate

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.

Performance

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.

Reliability

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.

Horizontal scalability

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.

Industry Standards

Microbus conforms to industry standards.

Interoperability

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.