<p><pre><code> Basically, building real-time fault-tolerance support on top
of the JVM is by definition impossible, because the JVM
itself is not fault-tolerant.
</code></pre>
This isn't strictly correct. The article talks about the big difference between the JVM and Erlang being a shared heap vs multiple heaps, but really, it just comes down to coding. There is nothing stopping you from using message passing and immutability in the JVM, and many libraries (eg Scala Actors) do exactly this.<p>So it's definitely not <i>impossible</i> to build fault tolerance on the JVM.<p>Also the diagram showing Erlang acting on any number of CPUs while Java is somehow limited to 2 CPUs is simply a marketing lie and is very unnecessary. The JVM can scale happily to any number of CPUs, as it piggy backs off native OS threads, which in linux/windows both scale to any number of CPUs.
Simple question: how could I <i>migrate away</i> from this platform if at one point or another I would get unsatisfied with either the platform or would need this on my own servers? Is there an open-source platform technology? Is this also available as a plain ol' software-as-a-product that I could use on my servers?
This seems like a really interesting approach. I've often wondered what it would be like to live in a world where almost everything could be wrapped in a transaction, and it seems like Cloudl <i>sort of</i> goes in this direction.