Marcel's Blog

Archive

More control with idempotency

More control with idempotency

Idempotency has become one of my favorite principles for designing systems. When programs are designed to be idempotent, I feel much more in control and know better what is going on. So let’s take a closer look into the idempotency by trying to design a simplified real-life idempotent program.

Our use-case here will be about the health monitoring of charge-points for electric vehicles. Let’s assume that our system is already able to detect alerts on such charge-points, and our task is to send emails to the charge-point owners notifying them about the detected alerts. (To make things simpler for now, let’s assume that there can be only one alert on a given charge-point during its whole lifetime. Later, we will also discuss how to approach multiple alerts). Now, let’s try to design such a program in an idempotent way.

Our visual grammar for this example

#7
March 21, 2022
Read more

Tackling confusion with spreadsheet tables

Hi,

I thought I’ll try to experiment with a different format for this newsletter. That is, I’ll try to write to you like this, directly, in a more informal and shorter way. I’m curious how this experiment will go and I’ll be happy for any feedback along the way. Alright, here we go.


I think that I have this tendency that when I don’t understand something, I try to turn it into a spreadsheet table. Such tables have been a tremendous help for me in tackling confusion and turning it into more clarity and control. So I thought I’ll try to share a few real-life examples:

#8
March 9, 2022
Read more

New posts (Apr 13, 2021)

Hey,

Here are new posts I wrote. I’m interested to hear what you think at @mkrcah on Twitter. Or just hit reply to this email.

I attended a knowledge sharing session about the DynamoDB. I knew Dynamo’s basics concepts—I used different key-value NoSQL db before, such as Redis, MongoDb or HBase. But I was curious about the technical details of DynamoDb because this has been new territory for me. So here’s what I’ve learned.

#6
April 13, 2021
Read more

New posts (collected on Mar 15, 2021)

Hey,

here are the latest posts from my blog. I’m interested to hear what you think at @mkrcah on Twitter. Or just hit reply to this email.

I’ve been facing the question of how to build a bidirectional near-real-time synchronization between two systems. In the past years, I’ve seen multiple projects where data between two systems were synced bi-directionally. In these projects, the bi-directional sync was a cause of data loss, unresolved conflicts, and frustration.

#5
March 15, 2021
Read more

New posts (collected on Feb 10, 2021)

Hey,

here are the latest posts from my blog. I’m interested to hear what you think at @mkrcah on Twitter. Or just hit reply to this email.

I’m moved by the works of Marshall Rosenberg. In the book Living Nonviolent Communication, Marshall tells a story of how he mediated peace negotiations between two African tribes at violent war.

#4
February 10, 2021
Read more

New posts on architecture, engineering, CLI and drawings

Hey,

I just want to say that I’m delighted I can be sending such emails to you. Here’s the lastest batch:

  • #architecture
#2
February 1, 2021
Read more

New posts on #engineering (4) and #philosophy-of-life (1)

Hey,

Here are the new posts I wrote this week. I’m interested to hear what you think at @mkrcah on Twitter. Or just hit reply to this email.

#1
January 22, 2021
Read more

New posts about #engineering, #writing, #aws

Hey,

Here are the new posts I wrote. I’m interested to hear what you think at @mkrcah on Twitter. Or just hit reply to this email.

#9
January 15, 2021
Read more

Domain comments, drawings & dotfiles

Hi there,

After a longer break, I started blogging again. Here are the three new posts:

Adding domain knowledge to code comments I experimented with adding more domain knowledge to code comments. It turned out that such comments were very helpful to others, accelerating their understanding of code.

#3
December 22, 2020
Read more
Brought to you by Buttondown, the easiest way to start and grow your newsletter.