What comes to your mind when you hear the term “Distributed Messaging”? Well, not even that, let’s paraphrase: What are your expectations concerning the messaging in distributed systems? I suppose that “reliability” will occupy one of the top positions in the list of answers. What sense do we put into...
Continue reading...Beware of Message Ordering In Apache Kafka Topic Partitions
Hi! I’ve started a new series on my YouTube channel named “Alex Tried to Understand”. It will be short tech-related clips dedicated to some technical aspects. The first episode is dedicated to the ordering guarantees in Apache Kafka. Synopsis The official docs state that Kafka preserves message ordering inside a...
Continue reading...Add healthchecks for Apache Kafka in docker-compose
Let’s say we have an application inside docker image that connects to Apache Kafka on start and tries to publish a bunch of messages to topics. Now let’s imagine that you want to test your app locally and thus you’ve created a docker-compose.yml with Apache Kafka, Zookeeper, and your application...
Continue reading...How to use locally published docker image in docker-compose using sbt-native-packager
Sometimes it is necessary to publish applications fitted inside docker images to the local docker registry without publishing them to the central Docker Hub. Usually, these cases cover situations of local testing and debugging when you want to create a specific environment using docker-compose and test your application against this...
Continue reading...Что такое Dozer – это mapper
Иногда в проектах требуется скопировать атрибуты одного объекта в другой, временами не напрямую, а с некоторыми преобразованиями, например извлечением подстроки или наоборот, объединением нескольких полей родительского объекта в единое поле дочернего. Такие преобразования называются маппингами (mappings). Чаще всего они применяются там, где необходимо передать Java-объект без избыточных чувствительных данных. Об...
Continue reading...Solutions Architecture Patterns
I am a huge fan of Medium.com. It contains plenty of engineering articles that altogether shed a vivid light on almost any programming area you can imagine. I’ve recently checked my daily reads and came across an interesting release announcement that introduces the Solution Architecture Patterns repository. Since this blog...
Continue reading...Static Compilation (AOT) vs. Dynamic Compilation (JIT)
When it comes to compilation (not only in Java) one can name at least two types of the latter. Let’s check out the differences. Let’s say you are developing an application that consists of only one class. After the job is finished you definitely want to run the code. What...
Continue reading...List of modern data exchange formats
I will just put here a list of modern data exchange formats. Avro Protocol Buffers Json MessagePack XML (well, not so modern as it supposes to be) Parquet CarbonData ORC CSV (well, too) Flatbuffers Cap’n Proto
Continue reading...Akka Streams Essentials. Part I.
The purpose of the series is to uncover some of theAkka Streams essentials. There are few major principles that lie behinds this topic. They are: Asynchronous Backpressured Incremental And potentially infinite STREAMS of elements These terms are inextricably linked to the Reactive Streams concepts: Reactive Streams is an initiative to...
Continue reading...Window Operations in Stream Processing
This post was created using the information given in “Stream processing with Apache Flink”, the book written by Vasiliki Kalavri and Fabian Hueske. There are few types of window operations that are most commonly used in stream processing. They are: tumbling windowing, sliding windowing, and session windowing. Today we will...
Continue reading...