In late 2018 I gave a workshop about Spring 5’s new features to Tikal’s full-stack community. The most talked-about feature in Spring 5 was Reactive Spring.

As I was preparing the code samples and lessons for the workshop, I realized I was quite limited with the options for a database example. I had two options:

  • Use MongoDB or Couchbase which had a reactive driver and I was proficient with
  • Wrap inputs and outputs of a JDBC repository with Mono and Flux

I chose to work with MongoDB, so I could present a fully reactive web application.

But now the struggle…


In databases, change data capture (CDC) is a set of software design patterns used to determine and track the data that has changed so that action can be taken using the changed data.

Lately I’ve been working on a CDC (Change Data Capture) system, that tracks changes from Postgres-based databases and sends them to another destination.

This is a very common scenario for a CDC — syncing data between databases. Thus my research started with checking what other, including Debezium, use to capture data changes from Postgres, which resulted with WAL.

Write Ahead Logs (aka WAL), are the transaction logs…


In 2019 I started coding in Kotlin, our team had several reasons to try it out:

  • We were creating a new set of services so had a chance to embed some new languages, techniques and frameworks
  • We heard multiple positive reviews about Kotlin

Java and I

I’ve been coding in Java for many years and it became my main programming language in 2008. I like Java, I enjoy coding in Java, but I have to keep up. I tried Scala, but after trying to learn it I came to the realisation that it is not my style.

The services

The services are small Spring +…

Sigal Shaharabani

I love programming and dancing

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store