DDD Weekly: Issue #52

January 8, 2018

You are also opting in for interesting, DDD-related emails from buildplease.com

Reducing Microservice Complexity with Kafka and Reactive Streams [video] Jim Riecken. Transitioning from a monolithic application to a set of microservices can help increase performance and scalability, but it can also drastically increase complexity. Layers of inter-service network calls for add latency and an increasing risk of failure where previously only local function calls existed. In this talk, I’ll speak about how to tame this complexity using Apache Kafka and Reactive Streams…

The Gamma: Democratizing data science [video] Tomas Petricek. What if you could look at the source code behind any visualization, understand how it works, run it to check the results using the latest data and modify the parameters to explore different aspects of the data? I this talk, I will show how we used F# and functional programming to develop a new browser-based data visualization environment. I will show two fun projects that we created looking at the history of Olympic games and testing what people know about the UK government spending. Expect to learn about fun data science and programming challenges we encountered along the way!

Akkling - the unofficial official Akka.NET F# API [blog] Vagif Abilov. Akka.NET has had an F# API since its early days, but it’s Akkling that you should use for Akka programming in F#. This article explains why.

Building a Distributed Log from Scratch, Part 2: Data Replication [blog] Tyler Treat. In part one of this series we introduced the idea of a message log, touched on why it’s useful, and discussed the storage mechanics behind it. In part two, we discuss data replication

DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together [blog] Herberto Graca. This post is part of The Software Architecture Chronicles, a series of posts about Software Architecture. In them, I write about what I’ve learned on Software Architecture, how I think of it, and how I use that knowledge. The contents of this post might make more sense if you read the previous posts in this series.

What is Domain Driven Design? [blog] John Salzarulo. As software developers, we are trying to build tools to help people do their jobs or accomplish specific tasks. Without a good understanding of the domain you can’t build great software.

Process Managers revisited [blog] Pawel Pacana. I’ve been telling my story with process managers some time ago. In short I’ve explored there a way to source state of the process using nothing more but domain events. However I’ve encountered an issue which led to a workaround I wasn’t quite happy about. With the release of RailsEventStore v0.22.0 this is no longer a case!

A Response to REST is the new SOAP [blog] Phil Sturgeon. The future is bright, we can get there through education, usage of standards, and avoiding bandwagon hopping. As soon as we stop designing APIs around a network hack, thing more intelligently about API versioning, and really commit to contracts, the REST API world will be fantastically popular over the next few years.

Five Things Every Developer Should Know about Software Architecture [blog] Simon Brown. Back in 2010, I wrote an article titled Are You a Software Architect?, which looked at the difference and transition between being a software developer and being a software architect. Although the industry has moved on in many ways during the past 8 years, it seems that software development teams are still struggling with some of the basics, especially those aspects related to software architecture. These are arguably more important than ever before, given the distributed nature of the software systems we’re now building, and the distributed nature of the teams building them. As a short introduction to the topic and to debunk some myths, here are five things that every software developer should know about software architecture.

An Actor, a model and an architect walk onto the web… [blog] Das Surma. The whole reason I started to think about actors was because I was playing around with Erlang. Erlang is not the only language to use the Actor Model, of course, but arguably the most popular one. There’s also it’s more modern reincarnation Elixir, the JVM langauge Scala, or the systems programming language Pony… It struck me that the Actor Model could work on the web. The more I thought about it, the more it seems like a natural fit.

Money Transfer Saga [blog] Tom Liversidge. The Saga pattern was first coined by Hector Garcia-Molina and Kenneth Salem in their paper, Sagas. Although originally described in the context of a database management system, the Saga pattern has gained popularity in a distributed systems context as a way to manage failures when dealing with multiple remote participants in a business process.