Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
Richard Hightower
@gcc tracked down some nasty ones with health.. got rid of NPE... also got rid of some other issues which were spotted when doing load tests. this should be a more stable qbit.
The NPE did not prevent anything from working, but it is annoying. Happens 4 or so times an hour. Shows up in the log.
we also added ssl support for client and server
Richard Hightower
release notes
• Exposed swagger through admin
• Added admin endpoint to ManagedServiceBuilder
• Exposed admin endpoint as __admin to make it consistent with local stats collections and health
• Added support for Map<String, String> to swagger support
• Added ssl support to http server and client
• Fixed bug in BasicQueue when dealing with ArrayBlockingQueue
• Fixed ServiceBuilder so you can pass beforeMethodCall or beforeMethodCallAfterTransform
• Fixed health check NPE which was happening every hour or so
• Auto registry with endpoint builder to service discovery and health implemented
• EventBusCluster now uses Service Discovery instead of using Consul direct
Richard Hightower
RC1 went out last night
QBit integrates easily with Consul, StatsD and Swagger. In addition QBit has its own health system, stats engine, and meta-data engine.
To make configuring QBit easier we did two things: 1) we added support for Spring Boot (which we have not released yet), and 2) we created the ManagedServiceBuilder, which we will show below.
The ManagedServiceBuilder simplifies construction of QBit endpoints by registering all services and endpoints with the system service so that they are shut down correctly when you CTRL-C or kill an app gracefully.
In addition ManagedServiceBuilder allows enabling of StatsD, Swagger, and Consul in one simple step. By default, ManagedServiceBuilder is configured to run in an environment like Docker or Heroku.
Richard Hightower
This issue is 1.0 release blocker. advantageous/qbit#311
Tobias Lindenmann
Is there plan for authentication e.g. basic auth for qbit?
Richard Hightower

ok.. I have implemented and tested the predicate chain for request handling stuff...
I documented it up there.
(I will add it, but just letting you know that it is there.)
To exercise this and show that it is working, let's use curl.

Pass the header token

$ curl --header "X-SECURITY-TOKEN: shibboleth" http://localhost:8080/root/hello/hello
"hello 1440012093122"
No header token

$ curl  http://localhost:8080/root/hello/hello
"shove off"
Health request

$ curl http://localhost:8080/__health
Show less
We added a new method. /* We can register our security token checker here. /

netdevfighter at the moment no.
sorry that link was broken
@netdevfighter no.. but we accept pull requests and you can put a proposal as a task/bug-report in github.
Richard Hightower

i tested resource url style REST server with swagger gen and it works. which is cool since I never tested it before. :)
(tested only @RequestParam style, but the swagger JSON gen looks right)
so it not only looks right but works
resource URL example
swagger generated client that works
so for this style
we can generate clients
@RequestMapping(value = "/department/{departmentId}/", method = RequestMethod.POST)
    public boolean addDepartment(@PathVariable("departmentId") Integer departmentId,
                                  final Department department) {

and stuff like this which is a nested resource
@RequestMapping(value = "/department/{departmentId}/employee/", method = RequestMethod.POST)
    public boolean addEmployee(@PathVariable("departmentId") Integer departmentId,
                               final Employee employee) {
and so on

Richard Hightower
holy green bar
Richard Hightower
this is a chat room to talk about qbit. so talk. :)
Richard Hightower

I added this reactive streams to qbit. I am going to add it on top of the disk batcher as well. And on top of WebSocket/JSON.

eventually, i want to add streams as a replacement for callback. (A callback in qbit is like a Handler in Vertx, but it is also an async Future and can be used for async calls or blocking calls.)
not all the time, but some time.
so if you are talking to a downstream stream, you can return pieces of the response at a time (at the service layer which then gets translated to websocket or a rest response).
a stream is like a callback but instead of a singe response, it has many, and when it is all done, it get a done call or the user can cancel.
2m 2 minutes ago
Rick Hightower
My main motivation is integration with other streaming APIs from Cassandra and Apache Spark, but all the way out to the end service. But it could be used other places.

Richard Hightower
no one ever chats here but me
qbit guice
Richard Hightower
there is a chat room.. but nobody chats in it yet
Orchid Noob
I have been testing out qbit and it works great... it certainly seems to outperform my spring-mvc based architecture. So I am trying to see if I can combine some of my old spring based code with qbit based on the examples in the qbit-extensions repo.
Orchid Noob
I am not sure how well supported the qbit-spring extensions are at the moment. I have managed to use the Bean + QBitService annotations to make Spring pick up my service beans. I am however struggling to get Spring security with this setup... @RichardHightower I was wondering if you have implemented authentication around Qbit and if so how you went about it... I have also looked at the qbit-auth project on Github but that project seems abandoned
Richard Hightower
QBit Auth.. cool.. please send a link. Geoff @sailorgeoffrey wrote the Spring Boot integration. I have used it on a project but have not used it in a while.
What I have done with QBit and Auth is nothing in the open source realm.
Orchid Noob
@RichardHightower With the new changes in qbit the spring-boot examples don't work. In fact, there are two 'spring-boot' examples so one works and one doesn't I guess..
I understand that the auth bit you have might not be in the public space.. So what would be useful is any clue about where I should intercept the calls to Qbit, so I can try and use a filter to see how Spring-security can be plugged in
Here is the link to the qbit-auth project I was referring to... Not something I wrote
Richard Hightower
sorry Orchid Noob.. I don't get on here enough.. The best way to reach me is to file an issue or use the mailing list. :)
    public HttpServerBuilder addRequestBodyContinuePredicate(final Predicate<HttpRequest> predicate) {
        return this;

    public HttpServerBuilder addShouldContinueHttpRequestPredicate(final Predicate<HttpRequest> predicate) {
        return this;
can we use qbit inside vertx 3.3.3
Havent found any documentation for ha and clustering. we already have vertx 3.3.3 up and running
so wondering if we can use qbit with vertx 3.3.3
Is this chat still active?
Richard Hightower
We check it from time to time.
We just released a new version of QBit. We are at QBit 2.0.0. It supports the simplified Reakt 4.0.0.
@akotha313_twitter you can... qbit is just a lib. It should work with vert.x 3.3.3 no problem. Let me know if it does not.
Newbie question: how can the state of a qbit be measured as it is in superposition of both 0 and 1 ? and, how will the system accurately find that it is supposed to be exactly 1 or 0

Hello, I designed a logo for Qbit. If you like it, I will give you this logo as a gift.

Please contact me

is there a new library that people use instead of qbit? I just happened to stumble upon it