Wednesday, 1 April 2015

Jolie to support groundbreaking +aaMS, *aaMS, picoservices!

With the advent of microservices, it was clear to us in the Jolie team that it was time to reinvent everything there is about computing. We call this initiative XaaMS: X as a MicroService. But what is X? Today, we can share some of our most exciting plans for the future.

X as +: +aaMS

How many times it happens that you have to make some additions, e.g., x = 3 + 2, in your programs? Additions in current programming languages are painfully slow, as they are executed locally and risk to be run sequentially in case you do not have enough CPU cores. To address this problem, the next version of Jolie will run every addition on the cloud!

From now on, whenever Jolie is run, it will start a cloud cluster on Amazon to run your additions. Anytime a sum has to be calculated, Jolie will contact a cloud node to run the sum remotely and then wait to receive the result. In this way, all your additions can be efficiently parallelised and take advantage of modern cloud computing!
When possible, the Jolie interpreter will use multiple cloud nodes for the same addition, and then decide later which cloud node computed the best result using an advanced (patent-pending) heuristics.

Rigorous scientific testing (patent pending) has shown us that the perfect number of cloud nodes to support each Jolie program is exactly 100, so that is our unchangeable default.

X as *: *aaMS

Multiplications will also be run on the cloud! This is beautifully crafted on top of our +aaMS innovation. Suppose that you have to compute:

x = 6 * 7

Instead of running it locally, we split the multiplication into additions, using a new procedure we invented that we call "Multiplication Cloudification":

x = 6 + 6 + 6 + 6 + 6 + 6 + 6

Observe that, as strange as it may seem at first, the two operations yield the same result (we are currently trying to publish this important result in a math journal, but we are encountering disbelief)! Now that we have additions, we can split them and run them in parallel in the cloud.
For example, from above, we get the following additions that we have to do:

6 + 6, 6 + 6, 6 + 6, 6 + 0

We get the following results from our cloud nodes:

12, 12, 12, 6

Now we contact our cloud nodes to do the following additions, in parallel:

12 + 12, 12 + 6

We get:

24, 18

We finally contact our 100 cloud nodes to sum 24 and 18 in parallel, pick the best result, and after a mere thousand years of round-trip communications we get:


which is what this example is all about.

X as Pico

Recent business surveys suggest that the more microservices you have in your microservice architecture, the better! For this reason, the next version of Jolie will introduce the outstanding concept of Picoservices! Picoservices are launched from the command line, for example

jolie --pico 1000 program.ol

will launch Jolie with a thousand (!) picoservices, which are a special kind of microservices. What do picoservices do? Nothing! That is the beauty of it. They are microservices finely optimised to be hanging around and consume as little resources as possible (but still convincing, in a business sense).

Thanks to our lightweight picoservices, we are able to have microservice architectures that scale up to thousands of picoservices (if not millions!). Your business competitor will not be able to keep up!


  1. Best read ever! I rate it 5/7

  2. Learning Jolie, read old news, found this one, wait what? I should just stick to Java!! ;)

    April's fools definitely work best when not read on April 1st.