The Parallel Universe Blog

July 23, 2014

A New Release of the Parallel Universe Stack

By Ron

Quasar 0.6.0 and Comsat 0.2.0 have been released

Today we released new versions of the Parallel Universe stack: Quasar 0.6.0 and Comsat 0.2.0, as well as a new version of Galaxy to support the new Quasar features. A new version of SpaceBase is around the corner.

The new versions are packed with new features, and we’ll devote specific blog posts to cover them, but here’s quick overview.

New Quasar Features

  • Fiber serialization – fibers can be paused, serialized, and at a later time deserialized and resumed.
  • Actor migration – running actors can now migrate from one cluster node to another, preserving their state, and even stack (this feature uses fiber serialization).
  • Automatic suspendable method detection – it is no longer necessary to manually annotate fiber-blocking (suspendable) methods
  • Dataflow variables – Vars are the safely-mutable version of Vals (formerly called DelayedVals). These dataflow variables can be bound to the values of other dataflow vars and vals, and trigger actions when their values change.

The new features are still considered experimental, but you should definitely give them a try and build cool stuff. We believe Actor migration has a lot of potential, and we’re working on a demo to demonstrate the game-changing utility of this feature.

A few more minor changes have made it into this version, too. We’ve simplified the FiberAsync class, which helps turn any asynchronous, callback-based API, into a simple, performant fiber-blocking API (we’ll publish a FiberAsync tutorial on this blog soon). Also, Fiber.join/Fiber.get are now much more efficient, so joining a fiber from within another fiber is now a truly cheap operation.

Plenty of New Comsat Integrations

Comsat brings the awesome power of Quasar to popular web-related APIs. This new release includes a host of new integrations:

  • We’ve got Dropwizard to help you write simple REST services, now with Comsat-strength;
  • we’ve got Retrofit, that turns clean Java interfaces into REST calls, now fully fiber-blocking and scalable;
  • we’ve got JDBI and jOOQ integrations, if you want to acces a SQL database from your fibers/actors, but want a more friendly API than JDBC;
  • Finally, Fabio Tudone has graciously contributed a MongoDB integration module, based on the allanbank API, that lets fibers/actors directly call MongoDB.

RxJava Does Quasar

RxJava’s Quasar contrib module has been part of the mainline RxJava distribution for some time now, but this is a good place to mention it. It allows turning RxJava observables into Quasar channels and vice-versa, as well as running RxJava operators in fibers.

What About Pulsar and Clojure?

Today, we also released a new version of Pulsar, Quasar’s Clojure API, but this release simply maintains compatibility with the new Quasar version. However, Pulsar 0.7.0 will see lots of new features, in particular we’ll catch up with our compatible implementation of core.async, which performs much better than the original, but has lately fallen behind in terms of feature. We will also add a Comsat integration module for Ring.

Start Hacking!

So, you can look forward to seeing more posts, tutorials and demos from us, while we look forward to hearing from you in the form of suggestions, bug reports and contributions. Happy hacking!

Join our mailing list

Sign up to receive news and updates.

Tags: ,

comments powered by Disqus