At first glance it seems silly to do batching in the reactive world. When I first started with reactive programming I thought I wouldn’t have to worry about things like resource starvation. After all, the reactive magic bullet was *magical*! But my magic bullet fizzled when it hit downstream resource constraints causing me to need batching. With a reactive web client library like Play Framework’s, I can easily spin up tens of thousands of web requests, in parallel, using very little resources.
Heroku recently announced early access to the new Heroku Kafka service and while I’ve heard great things about Apache Kafka I hadn’t played with it because I’m too lazy to set that kind of stuff up on my own. Now that I can setup a Kafka cluster just by provisioning a Heroku Addon I figured it was time to give it a try. If you aren’t familiar with Kafka it is kinda a next generation messaging system.
Lately I’ve built a few apps that have relational data. Instead of trying to shoehorn that data into a NoSQL model I decided to use the awesome Heroku Postgres service but I didn’t want to lose out on the Reactiveness that most of the NoSQL data stores support. I discovered ScalikeJDBC-Async which uses postgresql-async, a Reactive (non-blocking), JDBC-ish, Postgres driver. With those libraries I was able to keep my data relational and my app Reactive all the way down.
This year at OSCON I will be leading a hands-on lab and presenting about Reactive, Play Framework, and Scala. Here are two sessions: Reactive All The Way Down (lab) - 9:00am Monday, July 21 In this tutorial you will build a Reactive application with Play Framework, Scala, WebSockets, and AngularJS. We will get started with a template app in Typesafe Activator. Then we will add a Reactive RESTful JSON service and a WebSocket in Scala.
Next week I will be presenting Going Reactive with Java 8 at the Boulder and Denver Java User Groups. Here is the session description: Java 8’s lambdas make building Reactive applications a whole lot easier and cleaner. Through copious code examples this session will show you how to build event-driven, scalable, resilient, and responsive applications with Java 8, Play Framework and Akka. On the web side you will learn about using lambdas for async & non-blocking requests & WebSockets.
Tonight I will be presenting Going Reactive with Java 8 at the Triangle Java Users Group. Here is the session description: Java 8’s lambdas make building Reactive applications a whole lot easier and cleaner. Through copious code examples this session will show you how to build event-driven, scalable, resilient, and responsive applications with Java 8, Play Framework and Akka. On the web side you will learn about using lambdas for async & non-blocking requests & WebSockets.
This week I will be presenting twice in San Francisco at SF Scala: Thursday April 10: Introducing sbt-web - A Node & WebJar Compatible Asset Pipeline for the Typesafe Platform sbt-web is a new web asset pipeline for Play Framework and other sbt-based frameworks. It can pull dependencies from both Node and WebJars. The pipeline covers all of the phases of client-side development, including: linting, compiling (CoffeeScript, LESS, etc), minification, concatenation, fingerprinting, and gzipping.
This Thursday (March 20, 2014) I will be presenting Building Reactive Apps at the Reactive Programming Enthusiasts Denver. Here is the session description: Non-blocking, asynchronous, and reactive programming models are all the rage today. This session will explore in-depth why these patterns are important in modern apps. We will drill down and see how to apply them to event-driven web, mobile, and RESTful apps. To illustrate the concepts, we will use Java, Scala, Akka, and the Play Framework as examples.
This week I’ll be circling around North America presenting about Play Framework and Reactive Apps. Here is the lineup: Tuesday Feb 11 in Boulder, Colorado at the Boulder JUG: 6pm - Intro to Play Framework 7:30pm - Building Reactive Apps Wednesday Feb 12 in Dallas, Texas at the Java MUG: 6:30pm - Building Reactive Apps Thursday Feb 13 in Vancouver, BC at the inaugural Vancouver Reactive Programmers meetup: 7pm - Building Reactive Apps It is going to be a fun week - I hope to see you at one of these events!