Evgeniy Khyst's Tech Blog
Articles on various software engineering topics
Follow @evgeniy-khist

Nginx and Let’s Encrypt with Docker Compose in less than 3 minutes

Nginx and Let’s Encrypt with Docker Compose in less than 3 minutes

Shell HTML Dockerfile Smarty
lets-encrypt letsencrypt letsencrypt-certificates letsencrypt-https https nginx nginx-https tls-certificates tls-encryption docker docker-compose renewing-certificates
· 8 min read

Spring Data JPA pitfalls and modern alternatives: Spring Data JDBC and Spring Data R2DBC

Spring Data JPA, Spring Data JDBC, and Spring Data R2DBC examples and a comprehensive guide to JPA fetching and locking strategies.

Java
spring-data-jpa spring-data-jdbc spring-data-r2dbc locking-strategies hibernate jpa spring-boot query-optimization jpql criteria-api spring-data optimistic-locking concurrency-control entity-graph entity
· 61 min read

Event Sourcing with PostgreSQL

PostgreSQL is the world's most advanced open source database. Also, PostgreSQL is suitable for Event Sourcing. This repository provides a sample of event sourced system that uses PostgreSQL as event store.

Java Shell
cqrs eventsourcing event-sourcing postgresql postgres solution-architecture
· 10 min read

Rents Map - Geohash Example

The example of server-side geo clustering using relational database (SQL) and geohash index

Java JavaScript HTML
geohash geohash-algorithm geoclustering clustering-algorithm maps osm leaflet
· 2 min read

Event Sourcing with Kafka and ksqlDB

Kafka is not for event sourcing, isn't it? Kafka alone is not an event store, but Kafka and ksqlDB together allow building full-featured event stores. This repository provides a sample of event sourced system that uses Kafka and ksqlDB as event store.

Java Shell
event-sourcing cqrs kafka ksqldb eventsourcing kafka-topic solution-architecture
· 15 min read

Event Sourcing with EventStoreDB

EventStoreDB is the database for Event Sourcing. This repository provides a sample of event sourced system that uses EventStoreDB as event store.

Java Shell
cqrs eventstoredb eventsourcing event-sourcing solution-architecture eventstore
· 13 min read

Spring Kafka Non-Blocking Retries and Dead Letter Topics

A sample of non-blocking retries and dead letter topics (aka reliable reprocessing and dead letter queues) with Apache Kafka using Spring Boot and Spring Kafka.

Java
spring spring-boot spring-kafka kafka apache-kafka retries reprocessing event-driven-architecture dlq-retry dlq dead-letter-queue dead-letter non-blocking delayed-queue
· 7 min read

Pairwise Comparison Method

An interactive web application for comparing entities using the pairwise comparison method

HTML JavaScript CSS
solution-comparison comparing-entities pairwise-comparison pairwise-comparisons comparison comparison-tool
· 2 min read

PostgreSQL Performance Essentials in 1 Hour

PostgreSQL performance essentials in 1 hour

btree-indexes gin-indexes hash-indexes partial-indexes bitmap-scans index-scan sequential-scan postgresql postgres sql table-partitioning multicolumn-indexes database-perfomance query-optimization query-plan sql-join nested-loops hash-join merge-join slow-queries
· 25 min read

Testcontainers with Podman

The example of using Podman with Testcontainers in Java projects, that use Gradle on Ubuntu Linux and MacOS (both x86_64 and Apple silicon).

Java
testcontainers podman docker podman-machine linux macos apple-silicon mac-m1 junit java testcontainers-junit-5
· 7 min read