QBit is a fast microservice platform for Java. It supports communication via HTTP and WebSockets. QBit supports REST services and is optimized for using JSON as on-the-wire data format.
QBit is a reactive platform (event-driven) meaning your components are called by QBit whenever they have work to do. Being reactive means that QBit uses non-blocking IO, so your components are not allowed to make blocking IO calls (ideally, at least).
QBit is designed to be a library / API / toolkit and not a framework. That means, that you can pick and choose what parts of QBit you want to use, and you can combine it with other tools like Spring or Vert.x.
Despite being designed as a library, QBit comes with rich functionality. QBit comes with the following parts built-in:
- Service Discovery
- Health, Monitoring
- Realtime service stats
- Async support
- Reactive Async call management
- Job Control
- Event Bus
You can find QBit here:
QBit is centered around a fast queue. You can register services which listens for messages put on the queue. This is illustrated here:
Messages written to a service queue typically come from an HTTP or WebSocket server, but you can also write directly to a service queue from inside your own Java code.
Each service also has a response queue. If a service wants to respond to a received message, it can do so via its response queue.
QBit Runs Embedded
When you start a server, do you so from inside your Java code. QBit does not work like Java EE servers where you start the server, and then load applications into it. With QBit you start a normal Java application, and inside that you start the QBit servers, create the queue and the services too.
This mode of running inside another Java app (inside your Java app) is also often referred to as embedded mode. QBit runs embedded inside your application, not the other way around.