Pub-Sub messaging with AWS SNS and SQS

When setting up a new application or platform, one of the most important things that you will need is messaging. As every part of the platform has a certain need for data, either realtime or after the fact, messages from other services within the application boundary need to be processed as efficiently as possible. This inter-executable messaging can go from simple notifications about something that happened in a domain (‘customer X changed his name to Y’) to a queue of outstanding jobs that are to be executed by workers. In any architectural case, be it (distributed) monolith, microliths, microservices or anything in between, messages will be there.

Read more →

FarmBot (Part 2): ‘Temporary’ raised bed

A couple of weeks ago we decided to continue building all FarmBot parts. After constructing these in large segments, we would assemble them together on top of the supportive construction, which was still missing.

To get more speed, I asked Sjuck – our house carpenter – to create a temporary solution made of wood. Since our motto still is Quality without Compromise, we were really happy when we saw the piece of art.

Read more →

Building Conversational Interfaces with Dialogflow

Ever since Siri became a standard feature on iOS, voice commands and conversational interfaces have gone through a renaissance of sorts, finally passing a threshold from gimmicky tech demos or science fiction to actual usability. They started out rough at first, being little more than voice command runners, but soon after they became fully conversational – that is, able to understand natural language instead of voice commands, able to ask follow-up questions.

Finally, they developed something of a personality, making them more human-sounding – done initially by adding self-aware sounding responses, often referencing Asimov’s philosophical work on AIs or Turing’s work on discerning an AI from a real person.

Read more →

EventStorming and how to monitor Domain Events for product management

We design, model, and create software to solve a problem for our customer (this can also be a customer from within the same company). Only when we do so, we focus naturally on solving the happy path and want to deliver that value as soon as possible. The only problem here is that we will always come to a point where we get corner cases or business exceptions, and the question starts to arise, what shall we do? Is it worth the effort to invest in building a solution for this, or can we leave this function out of the system because it is not worth it? To answer these question, we want, if possible, feedback from the system to know this. We can quickly get this feedback making it explicit in the form of a Domain Event during our EventStorming and start monitoring it. This way we can leave the options open until we know what to do.

Read more →

Test automation — From basics to advanced

This article answers the following questions:

  1. What are the prerequisites for test automation?
  2. What do you achieve by automating tests?
  3. What steps do you take to get test automation in place?

You’ve decided you need test automation. Awesome! Next phase: Get cracking! You’ve read what considerations to keep in mind when creating a successful automated testing strategy. So you’re good to go. Or are you?

Test automation is the process of automating tests. A set of checks distilled from test cases that are a translation of acceptance criteria. Clear user stories are the first prerequisite for test automation.

Read more →

Why I chose Rust

Why did I choose Rust? Rusts’ memory management introduces a steep learning curve. Its ecosystem isn’t developed as much as that of some other languages. Yet, Rust performs great, comes with some of the best support for web-assembly, and still manages to be an expressive language. Let’s review these properties in the context of an actual use case.

Read more →

Share This