<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Featured on Manuel Bernhardt</title><link>https://manuel.bernhardt.io/categories/featured/</link><description>Recent content in Featured on Manuel Bernhardt</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 18 Feb 2023 20:54:16 +0100</lastBuildDate><atom:link href="https://manuel.bernhardt.io/categories/featured/index.xml" rel="self" type="application/rss+xml"/><item><title>10000 nodes and beyond with Akka Cluster and Rapid</title><link>https://manuel.bernhardt.io/2020/04/30/10000-node-cluster-with-akka-and-rapid/</link><pubDate>Thu, 30 Apr 2020 09:39:47 +0200</pubDate><guid>https://manuel.bernhardt.io/2020/04/30/10000-node-cluster-with-akka-and-rapid/</guid><description>&lt;p>Update: there&amp;rsquo;s a &lt;a href="https://soundcloud.com/lightbend/scaling-akka-cluster-to-10000-nodes-with-rapid-manuel-bernhardt" target="_blank" rel="noreferrer noopener">podcast episode&lt;/a> about this&lt;/p>
&lt;p>&lt;span class="firstcharacter">T&lt;/span>he year is 2021. As the world is still deeply affected by the COVID-19 pandemic, the United Nations have decided that in order to prevent the same scenario of ever happening again, there should be a worldwide, real-time contact-tracing system in place capable of tracking every human being on the planet. Everyone is now equipped with a small, pebble-like device. If a person you have been in contact with is confirmed to carry a new kind of virus for which there is no remedy, the device starts glowing in red. Each device reports the anonymized contact information to one global backend system capable of handling this type of massive scale.&lt;/p></description></item><item><title>One step closer: exploiting locality in Akka Cluster based systems</title><link>https://manuel.bernhardt.io/2019/10/28/one-step-closer-exploiting-locality-in-akka-cluster-based-systems/</link><pubDate>Mon, 28 Oct 2019 12:36:24 +0100</pubDate><guid>https://manuel.bernhardt.io/2019/10/28/one-step-closer-exploiting-locality-in-akka-cluster-based-systems/</guid><description>&lt;p>When it comes to the latency of processing a request in a distributed system, everyone knows (or &lt;a rel="noreferrer noopener" aria-label="should know (opens in a new tab)" href="https://gist.github.com/jboner/2841832" target="_blank">should know&lt;/a>) that doing things over the network is the most expensive thing you can do (alongside with disk reads):&lt;/p>
&lt;p>
 &lt;figure style="text-align: center">
 &lt;img src="https://manuel.bernhardt.io/wp-content/687474703a2f2f692e696d6775722e636f6d2f6b307431652e706e67.png" class="pure-img" alt="">
 &lt;figcaption>The round trip time in a datacenter is about 5000 times longer than a main memory reference&lt;/figcaption>
 &lt;/figure>

&lt;/p>
&lt;p>Modern architectures have recognized this and will favor keeping data in memory, avoiding the need to go to disk or to the database, when consistency requirements allow for it. With &lt;a href="https://manuel.bernhardt.io/2018/02/26/tour-akka-cluster-cluster-sharding/">Akka Cluster Sharding&lt;/a> combined with &lt;a href="https://manuel.bernhardt.io/2018/01/31/tour-akka-cluster-eventual-consistency-persistent-actors-message-delivery-semantics/">Akka Persistence&lt;/a>, it is possible to keep millions of durable entities in memory, reducing latency to a large degree.&lt;/p></description></item><item><title>A new adaptive accrual failure detector for Akka</title><link>https://manuel.bernhardt.io/2017/07/26/a-new-adaptive-accrual-failure-detector-for-akka/</link><pubDate>Wed, 26 Jul 2017 15:28:38 +0200</pubDate><guid>https://manuel.bernhardt.io/2017/07/26/a-new-adaptive-accrual-failure-detector-for-akka/</guid><description>&lt;p>&lt;a href="http://akka.io">Akka&lt;/a> uses the &lt;a href="http://fubica.lsd.ufcg.edu.br/hp/cursos/cfsc/papers/hayashibara04theaccrual.pdf">The Φ Accrual Failure Detector&lt;/a> for failure detection, which is to say for answering the question of whether a node is alive or not. That&amp;rsquo;s one of the harder problems of distributed systems since it is virtually impossible (from the point of view of one node) to tell the difference of a remote system being completely unavailable (process crashed, computer died, etc.) or &lt;em>slow&lt;/em> (network congestion, other kind of congestion such as CPU during a garbage collection for JVM processes, etc.).&lt;/p></description></item><item><title>Akka Cluster, Java and the Raspberry PI 3 Model B</title><link>https://manuel.bernhardt.io/2016/04/19/akka-cluster-java-and-the-raspberry-pi-3-model-b/</link><pubDate>Tue, 19 Apr 2016 07:39:52 +0200</pubDate><guid>https://manuel.bernhardt.io/2016/04/19/akka-cluster-java-and-the-raspberry-pi-3-model-b/</guid><description>&lt;p>I recently built an architecture prototype for &lt;a href="http://dimoco.at">DIMOCO&lt;/a> aiming at answering roughly the following questions:&lt;/p>
&lt;ul>
&lt;li>what does it entail to run an Akka cluster, how fast can new nodes join, how manageable is such a cluster?&lt;/li>
&lt;li>are traditional publish-subscribe message distribution semantics supported (one-to-one, one-to-N, one-to-any-of-N)?&lt;/li>
&lt;li>how can message loss be averted / minimized?&lt;/li>
&lt;li>how fast is the message sending, is it fast enough?&lt;/li>
&lt;li>does it feel &amp;ldquo;Java-like&amp;rdquo; enough (since Akka has strong ties to Scala and the aim is to use Java for this project)?&lt;/li>
&lt;li>how well does it run on the data centers on premise, how easy is it to operate?&lt;/li>
&lt;/ul>
&lt;p>Since I&amp;rsquo;ve been itching to find an excuse for trying out the new &lt;a href="https://www.raspberrypi.org/products/raspberry-pi-3-model-b/">Raspberry PI 3 Model B&lt;/a> this was the perfect opportunity to order 3 of them and use them for testing the prototype.&lt;/p></description></item></channel></rss>