A Guide to Transactions Across Microservices 1. Introduction In this article, we’ll discuss options to implement a transaction across microservices. We’ll also check out some alternatives to transactions in a distributed microservice scenario. 2. Avoiding Transactions Across Microservices A distributed transaction is a very complex process with a lot of… Continue Reading transactions-across-microservices

The Dining Philosophers Problem in Java 1. Introduction The Dining Philosophers problem is one of the classic problems used to describe synchronization issues in a multi-threaded environment and illustrate techniques for solving them. Dijkstra first formulated this problem and presented it regarding computers accessing tape drive peripherals. The present formulation… Continue Reading java-dining-philoshophers

String Search Algorithms for Large Texts 1. Introduction In this article, we’ll show several algorithms for searching for a pattern in a large text. We’ll describe each algorithm with provided code and simple mathematical background. Notice that provided algorithms are not the best way to do a full-text search in… Continue Reading java-full-text-search-algorithms

ExecutorService – Waiting for Threads to Finish 1. Overview The ExecutorService framework makes it easy to process tasks in multiple threads. We’re going to exemplify some scenarios in which we wait for threads to finish their execution. Also, we’ll show how to gracefully shutdown an ExecutorService and wait for already… Continue Reading java-executor-wait-for-threads

Spring Cloud – Tracing Services with Zipkin 1. Overview In this article, we are going to add Zipkin to our spring cloud project. Zipkin is an open source project that provides mechanisms for sending, receiving, storing, and visualizing traces. This allows us to correlate activity between servers and get a… Continue Reading tracing-services-with-zipkin