Autor: Dan Iftodi
-
Dual Writes

Dual Writes often happens in a microservices based architecture. Whenever a piece of data changes in one place, we need to persist or react on it on multiple places. Imagine a user bought a product on our website and we need to save order in the database and inform a delivery service that they should…
-
Notes on Structured Concurrency, Fibers/Coroutines

Resources: Notes on structured concurrency, or: Go statement considered harmful Roman Elizarov — Structured concurrency KotlinConf 2017 – Deep Dive into Coroutines on JVM by Roman Elizarov Communicating sequential processes This blog post is in progress so I will update it gradually. There is a presentation that I have recorded:
-
Cloud-Native

This article describes how a Cloud Native application should look like, it is based on the well known 12 Factors. At the moment of writing this article, in my understanding, the Cloud Native is not only about code that developers write, but it is also a way of organizing engineering teams so that their work…
-
AbstractBuilder pattern that returns the subclass instance

I will start with a simple example where we want to have an AbstractBuilder for building Pet instances, in our example this will be a Dog. Here are the Pet class, and the Dog class that extends Pet Suppose we need a builder for building Dog instances and we know that in future there will…
-
Kotlin Basics
The Unit return type declaration is optional for functions. The following codes are equivalent. Single-Expression functions:When a function returns a single expression, the curly braces can be omitted and the body is specified after = symbol fun sum(a : Int, b : Int) : Int = a + b Explicitly declaring the return type is…
-
Kotlin Intro
Hello World Kotlin programs start at the main function. Here is an example of a simple Kotlin „Hello World” program: When compiled this code will be compiled into a file named after file name + ‘Kt’, if your file was named Main.kt, the compiled code will be in a file name MainKt. In the above…
-
An Agile approach in software building

When writing software, it is important to keep you organized and focused, losing focus or vague understanding requirements will endup in a bad written system in the best case. If you have got a large body of work that needs to go into production there are lots potential things that can go wrong. When you…
-
S3Fuse Java

S3Fuse allows you to mount an S3 bucket to your local storage and interact with it like it was stored into your local storage. It is written in Java and it will be published to my github account soon. It allows to read data from S3 but it is not possible yet to write data…
-
Hashing performance problem and how it was solved

Recently I run into a problem where hashing some data had a big impact on the application performance. There are few factors that influenced this but it required 2.5x more instances, imagine when you have 15 instances of you application in production and it requires 38 to serve the same traffic. In order to understand…
-
Indexes – Choosing a good column order

The purpose of this article is to explain (mainly to myself) a technique for creating good indexes for mysql database. Before starting I would like to discuss about selectivity. Index selectivity is the ratio of number of distinct indexed values ( the cardinality) over the total numbers of rows in the table (#T), and ranges…