Partitioning Akka Streams to Maximize Throughput

In an earlier article, I detailed a number of techniques that can be used to maximize the throughput for Akka Streams. The article focused on improving the throughput of individual streams and the techniques mainly involved, but were not limited to, maximizing concurrency. A topic that I did not explore…

From a Time-Series Database to a Key Operational Technology for the Enterprise: Part III

This three-part series expands on a talk that I gave at a conference focused on time-series data in 2018. This three-part series is focused on the challenges of elevating a time-series database from being just an IT application, used in the data center, to a critical operational technology, used throughout…

From a Time-Series Database to a Key Operational Technology for the Enterprise: Part II

This three-part series expands on a talk that I gave at a conference focused on time-series data in 2018. The first article in this series explored challenges related to time when elevating a time-series database from simply an information technology, to being an operational technology, used through the enterprise. In…

From a Time-Series Database to a Key Operational Technology for the Enterprise: Part I

This three-part series expands on a talk that I gave at a conference focused on time-series data in 2018. Many people are familiar with using a time-series database for collecting metrics from servers, applications, databases, and services running in a data center. A time-series database can provide valuable insights into…

Maximizing Throughput for Akka Streams

The Akka Streams API is fantastic for building scalable applications that involve streaming workloads. It provides high-level semantics that naturally describe these workloads, and it handles the dynamics inherent to these systems, resulting in applications that are reliable and resilient. If you are not familiar with the Akka Streams API,…

The Importance of Agency

Dan Pink's Drive is one of my favourite books. I also really like his RSA talk on the same subject. Pink argues that people are happy, engaged, productive, and creative when they are intrinsically motivated, as opposed to being motivated extrinsically by money, fear, punishment, or shame. He argues that…

Scala's Future.successful: Do Not Block Your Future Success

I want to raise awareness of a simple mistake that can be made with the successful method of a Scala Future. A Future is a placeholder object for a value that may not yet exist. It is used for performing operations concurrently, in a non-blocking manner, and it enables scaling…

Integrating Akka Streams and Akka Actors: Part IV

I expand on these concepts in my Reactive Summit presentation. In the first article of this series, I demonstrated the most basic patterns for integrating Akka Actors and the Akka Streams API. In the second article, I began developing an example to show how actors compliment streams, providing fault-tolerance and…

Reflections on Using Quality Views

When you work in engineering or operations, you become intimately familiar with the challenges of technical debt. It can be difficult, however, to communicate the full cost of technical debt to others in the organization, particularly to people who are non-technical. Communicating the latent risks for software systems that are…

Integrating Akka Streams and Akka Actors: Part III

I expand on these concepts in my Reactive Summit presentation. In the first article of this series, I described the basic patterns for interfacing the Akka Streams API and Akka Actors. In the second article, I focused on how Akka Actors compliment the Akka Streams API with regard to the…