<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pages on Manuel Bernhardt</title><link>https://manuel.bernhardt.io/pages/</link><description>Recent content in Pages on Manuel Bernhardt</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 21 May 2026 09:55:54 +0200</lastBuildDate><atom:link href="https://manuel.bernhardt.io/pages/index.xml" rel="self" type="application/rss+xml"/><item><title>Akka Cluster on Raspberry PI</title><link>https://manuel.bernhardt.io/akka-cluster-on-raspberry-pi/</link><pubDate>Mon, 10 Feb 2020 16:00:09 +0100</pubDate><guid>https://manuel.bernhardt.io/akka-cluster-on-raspberry-pi/</guid><description>&lt;p>Akka is a toolkit for building massively scalable applications. At the same time, it is lightweight enough to be deployed on Raspberry PI computers. I&amp;rsquo;m fascinated with these machines since I first saw one in real life at Devoxx Antwerp in 2010, own quite a few of them (some of which are hooked up to various appliances in my home) and use them in order to demonstrate Akka Cluster to clients or at training courses.&lt;/p></description></item><item><title>Akka anti-patterns overview</title><link>https://manuel.bernhardt.io/akka-anti-patterns/</link><pubDate>Fri, 20 Dec 2019 09:52:44 +0100</pubDate><guid>https://manuel.bernhardt.io/akka-anti-patterns/</guid><description>&lt;p>This is an overview of &lt;a href="http://akka.io">Akka&lt;/a> anti-pattern articles. You can think of these anti-patterns as the opposite of Akka best practices – that is, things you should not be doing when using Akka.&lt;/p>
&lt;p>Here is also a talk about 8 very frequent anti-patterns out there:&lt;figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio">&lt;/p>
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/h3mulWmX1Oo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="Akka Cluster Membership State Convergence">&lt;/iframe>
 &lt;/div>

&lt;h3 id="basics">Basics&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/02/akka-anti-patterns-shared-mutable-state/">Shared mutable state&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/05/15/akka-anti-patterns-blocking/">Blocking&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/09/akka-anti-patterns-flat-actor-hierarchies-or-mixing-business-logic-and-failure-handling/">Flat actor hierarchies / Mixing business logic and failure handling&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/16/akka-anti-patterns-race-conditions/">Race conditions&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/05/30/akka-anti-patterns-stateless-actors/">Stateless actors&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/08/06/akka-anti-patterns-many-actors/">Too many actors&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="performance">Performance&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/31/akka-anti-patterns-logging-the-wrong-way/">Logging the wrong way&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/11/21/akka-anti-patterns-being-out-of-touch-with-the-hardware/">Being out of touch with the hardware&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/03/20/akka-anti-patterns-overusing-actorselection/">Overusing ActorSelection&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/07/20/akka-anti-patterns-java-serialization">Using Java Serialization&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="network--cluster">Network / Cluster&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/06/08/akka-anti-patterns-using-remoting/">Using remoting&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/06/20/akka-anti-patterns-trusting-network/">Trusting the network&lt;/a>&lt;/li>
&lt;li>Always using the defaults (to be written)&lt;/li>
&lt;li>Using cluster without / with the wrong split-brain resolver (to be written)&lt;/li>
&lt;/ul>
&lt;h3 id="architecture--design">Architecture / Design&lt;/h3>
&lt;ul>
&lt;li>Not defining a protocol (to be written)&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/08/26/akka-anti-patterns-naming-your-application-after-akka-concepts/">Naming your application components after akka concepts&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/23/akka-anti-patterns-too-many-actor-systems/">Too many actor systems&lt;/a>&lt;/li>
&lt;li>Blindly ignoring dead letters (to be written)&lt;/li>
&lt;/ul></description></item><item><title>Articles</title><link>https://manuel.bernhardt.io/articles/</link><pubDate>Fri, 18 Oct 2019 15:40:23 +0200</pubDate><guid>https://manuel.bernhardt.io/articles/</guid><description>&lt;p>&lt;em>This is an overview of some of what I&amp;rsquo;ve written over the years.&lt;/em>&lt;/p>
&lt;h2 id="featured">Featured&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2020/04/30/10000-node-cluster-with-akka-and-rapid/">10000 nodes and beyond with Akka Cluster and Rapid&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/posts/2023-11-16-core-pinning/">On pinning and and isolating CPU cores&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2021/04/15/akka-raspberry-pi-demos/">Akka Raspberry PI demos&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/07/26/a-new-adaptive-accrual-failure-detector-for-akka/">A new adaptive accrual failure detector for Akka&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="sre--devops">SRE / DevOps&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/posts/2024-05-16-on-azure/">On Azure&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="rust">Rust&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/posts/2024-01-26-rust-fearless-concurrency-cats-raspberry-pi/">Fearless concurrency with Rust, cats, and a few Raspberry PIs&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/posts/2024-01-12-rust-cat-litter-box/">Building a cat litter box reminder with Rust&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/posts/2022-11-04-rust-development-for-the-raspberry-pi-on-apple-silicon/">Rust development for th Raspberry Pi on Apple Silicon&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="tour-of-temporal">Tour of Temporal&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2021/04/12/tour-of-temporal-welcome-to-the-workflow/">Part 1: Welcome to the Workflow&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2021/04/25/tour-of-temporal-performance/">Part 2: Performance (latency)&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="h-tour-of-akka-typed">&lt;a href="https://manuel.bernhardt.io/tags/akka-typed/">Tour of Akka Typed&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2019/07/11/tour-of-akka-typed-protocols-and-behaviors/">Part 1: Protocols and Behaviors&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2019/08/07/tour-of-akka-typed-message-adapters-ask-pattern-and-actor-discovery/">Part 2: Message adapters, ask pattern and actor discovery&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2019/09/05/tour-of-akka-typed-supervision-and-signals/">Part 3: Supervision and signals&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2019/10/07/tour-of-akka-typed-event-sourcing/">Part 4: Event Sourcing&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2019/11/09/tour-of-akka-typed-cluster-sharding/">Part 5: Cluster Sharding&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2019/12/03/tour-of-akka-typed-cluster-singleton-and-routers/">Part 6: Cluster Singleton and Routers&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="h-tour-of-akka-cluster">&lt;a href="https://manuel.bernhardt.io/tags/akka-cluster">Tour of Akka Cluster&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/01/03/tour-akka-cluster-akka-distributed-data/">Part 1: Akka Distributed Data&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/01/31/tour-akka-cluster-eventual-consistency-persistent-actors-message-delivery-semantics/">Part 2: Eventual consistency, persistent actors, message delivery semantics&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/02/26/tour-akka-cluster-cluster-sharding/">Part 3: Cluster Sharding&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/03/23/tour-akka-cluster-testing-multi-node-testkit-handful-raspberry-pis/">Part 4: Testing with the multi-node-testkit and a handful Raspberry PIs&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="h-akka-anti-patterns">&lt;a href="https://manuel.bernhardt.io/articles/#akka-anti-patterns-classic">Akka anti-patterns&lt;/a>&lt;/h2>
&lt;h3 id="h-basics">Basics&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/02/akka-anti-patterns-shared-mutable-state/">Shared mutable state&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/05/15/akka-anti-patterns-blocking/">Blocking&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/09/akka-anti-patterns-flat-actor-hierarchies-or-mixing-business-logic-and-failure-handling/">Flat actor hierarchies / Mixing business logic and failure handling&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/16/akka-anti-patterns-race-conditions/">Race conditions&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/05/30/akka-anti-patterns-stateless-actors/">Stateless actors&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/08/06/akka-anti-patterns-many-actors/">Too many actors&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="h-performance">Performance&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/31/akka-anti-patterns-logging-the-wrong-way/">Logging the wrong way&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/11/21/akka-anti-patterns-being-out-of-touch-with-the-hardware/">Being out of touch with the hardware&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/03/20/akka-anti-patterns-overusing-actorselection/">Overusing ActorSelection&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/07/20/akka-anti-patterns-java-serialization">Using Java Serialization&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="h-network-cluster">Network / Cluster&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/06/08/akka-anti-patterns-using-remoting/">Using remoting&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/06/20/akka-anti-patterns-trusting-network/">Trusting the network&lt;/a>&lt;/li>
&lt;li>Always using the defaults (to be written)&lt;/li>
&lt;li>Using cluster without / with the wrong split-brain resolver (to be written)&lt;/li>
&lt;/ul>
&lt;h3 id="h-architecture-design">Architecture / Design&lt;/h3>
&lt;ul>
&lt;li>Not defining a protocol (to be written)&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/08/26/akka-anti-patterns-naming-your-application-after-akka-concepts/">Naming your application components after akka concepts&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/08/23/akka-anti-patterns-too-many-actor-systems/">Too many actor systems&lt;/a>&lt;/li>
&lt;li>Blindly ignoring dead letters (to be written)&lt;/li>
&lt;/ul>
&lt;h2 id="akka">Akka&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2019/05/02/raspberry-pi-akka-cluster-led-strips/">Raspberry PI Akka Cluster LED strips&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/04/19/akka-cluster-java-and-the-raspberry-pi-3-model-b/">Akka Cluster, Java and the Raspberry PI 3 Model B&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/05/22/akka-streams-notused/">Akka Streams – What is NotUsed all about&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2014/04/23/a-handful-akka-techniques/">A handful Akka techniques&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="scala">Scala&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2019/06/17/optimizing-ci-build-times-for-scala-projects/">Optimizing CI build times for Scala projects&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/04/19/quick-tour-build-tools-scala/">A quick tour of build tools in Scala&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2015/11/06/a-quick-tour-of-json-libraries-in-scala/">A quick tour of JSON libraries in Scala&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2014/02/04/a-quick-tour-of-relational-database-access-with-scala/">A quick tour of relational database access with Scala&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2015/11/13/5-years-of-scala-and-counting-debunking-some-myths-about-the-language-and-its-environment/">5 years of Scala and counting – debunking some myths about the language and its environment&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="play-framework">Play Framework&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2013/10/17/reactive-golf-or-iteratees-and-all-that-stuff-in-practice-part-1/">Reactive Golf or Iteratees and all that stuff in practice, part 1&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2013/10/21/reactive-golf-or-iteratees-and-all-that-stuff-in-practice-part-2/">Reactive Golf or Iteratees and all that stuff in practice, part 2&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2013/10/26/reactive-golf-or-iteratees-and-all-that-stuff-in-practice-part-3/">Reactive Golf or Iteratees and all that stuff in practice, part 3&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2013/11/16/tips-tricks-for-setting-up-a-play-2-project/">Tips &amp;amp; tricks for setting up a Play 2 project&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2013/08/01/how-to-read-the-play-session-from-angularjs/">How to read the Play session from AngularJS&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2013/07/08/crud-trait-for-slick-models-in-the-play-framework/">CRUD trait for Slick models in the Play! framework&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2013/06/14/quickly-open-errors-in-your-ide-when-developing-play-applications/">Quickly open errors in your IDE when developing Play applications&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2013/03/26/multi-modular-development-with-play-2-1/">Multi-modular development with Play 2.1&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2012/10/26/activating-logging-in-test-mode-in-play-2-0-x/">Activating logging in test mode in Play 2.0.x&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2011/11/18/mongodb-based-cache-for-play-1-2-x-and-play-scala/">MongoDB-based Cache for Play 1.2.x and Play-Scala&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2011/09/16/play-scala-and-json/">Play! Scala and JSON&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2011/03/23/selenium-ide-plugin-for-the-play-framework/">Selenium IDE plugin for the Play! framework&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="reactive-database-access">Reactive Database Access&lt;/h2>
&lt;ul>
&lt;li>&lt;a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://blog.jooq.org/2015/12/03/reactive-database-access-part-1-why-async" target="_blank">Part 1: Why Reactive, why “Async” &amp;amp; an introduction to Futures&lt;/a>&lt;/li>
&lt;li>&lt;a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://blog.jooq.org/2015/12/16/reactive-database-access-part-2-actors" target="_blank">Part 2: Introduction to Actors&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.jooq.org/2016/01/14/reactive-database-access-part-3-using-jooq-with-scala-futures-and-actors/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Part 3: Using jOOQ with Scala, Futures and Actors&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="misc">Misc&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2019/06/07/why-im-still-using-a-macbook-pro-late-2013/">Why I&amp;rsquo;m still using a MacBook Pro Late 2013 in 2019&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2018/12/31/2018-year-review/">2018: year in review&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2020/10/23/key-findings-ten-years-of-home-office/">3 key findings from 10 years of home-office&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/05/08/got-hold-frame-avoiding-burnout-lessons-learned-six-years-independent-consultant/">You got to hold the frame – Avoiding burnout or Lessons learned from six years as an independent consultant&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2015/01/27/reactive-play/">Reactive Play&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2016/07/15/the-reality-of-writing-a-technical-book/">The reality of writing a technical book&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2015/10/16/initial-thoughts-on-fatherhood/">Initial thoughts on fatherhood&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://manuel.bernhardt.io/2017/11/16/subsequent-thoughts-fatherhood/">Subsequent thoughts on fatherhood&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>What I'm doing now</title><link>https://manuel.bernhardt.io/now/</link><pubDate>Tue, 21 Mar 2017 20:20:31 +0100</pubDate><guid>https://manuel.bernhardt.io/now/</guid><description>&lt;p>This is a &lt;a href="http://nownownow.com/about">now page&lt;/a> that tells you what I am focusing on at this point in my life.&lt;/p>
&lt;p>These days, I am:&lt;/p>
&lt;ul>
&lt;li>taking care of SRE and security (DevSecOps) for a client in Vienna, with increased focus on the cloud security aspect&lt;/li>
&lt;li>finishing to renovate the new place I moved into&lt;/li>
&lt;/ul>
&lt;p>This page was last updated on 21st of May 2026&lt;/p></description></item><item><title>About</title><link>https://manuel.bernhardt.io/about/</link><pubDate>Sun, 19 Mar 2017 21:12:15 +0100</pubDate><guid>https://manuel.bernhardt.io/about/</guid><description>&lt;div class="row">
&lt;div class="col-md-7 text">
&lt;p>I&amp;rsquo;m a polyglot software engineer and trainer working as an independent consultant.&lt;/p>
&lt;p>My consulting work consists in helping my clients:&lt;/p>
&lt;ul>
&lt;li>engineer, deploy and operate highly available and fault-tolerant systems&lt;/li>
&lt;li>get existing systems to meet predictable performance requirements in the face of increasing load&lt;/li>
&lt;/ul>
&lt;p>I have significant experience in engineering and operating distributed systems at all levels of the stack, from high-level architecture down to debugging issues at the kernel or network level. Next to working on client projects I have also explored the topics of cluster membership and distributed consensus, trying to keep up to date with the latest research in this field and sometimes &lt;a href="https://manuel.bernhardt.io/2020/04/30/10000-node-cluster-with-akka-and-rapid/">pushing the limit myself&lt;/a>.&lt;/p></description></item><item><title>Reactive Web Applications</title><link>https://manuel.bernhardt.io/reactive-web-applications/</link><pubDate>Mon, 21 Mar 2016 15:38:10 +0000</pubDate><guid>https://manuel.bernhardt.io/reactive-web-applications/</guid><description>&lt;h1 id="reactive-web-applications">Reactive Web Applications&lt;/h1>
&lt;p>
 &lt;figure style="text-align: center">
 &lt;img src="https://manuel.bernhardt.io/wp-content/UNADJUSTEDNONRAW_thumb_215b.jpg" class="pure-img" alt="">
 &lt;figcaption>Reactive Web Applications&lt;/figcaption>
 &lt;/figure>

&lt;/p>
&lt;p>I decided to put the know-how I’ve collected over the years to good use by writing a book that will help others get started with reactive web applications. “Reactive Web Applications” will introduce you to a few concepts that will provide a basis for working with reactive architecture and making the most out of it.&lt;/p>
&lt;p>The book is the result of several years of experience designing, building and working with teams to build high-performant, fault-resilient web applications using the Play Framework, Akka and Scala. In a way, this is the book I wish I had had when I first started working with this stack.&lt;/p></description></item></channel></rss>