Automation
Internal Working of Temporal Java Service Client
The internal working of Temporal Java service client: module structure, protobuf messages, code generation, data conversion, authorization service stubs, and more.
25 Sep 2022
Activity in Temporal
This article explains the definition of an activity, execution, observability, testing, use-cases, and trade-offs in the workflow engine Temporal.
30 Jul 2022
Error Retries in Temporal Workflow
This article discusses the error retries in workflow engine Temporal, including retryable and non-retryable application errors, error types in retry policy, retry policy usage in different levels, maximum attempts, and more.
09 Oct 2021
Read more... (3 articles)
Elasticsearch
Internal Structure Of Elasticsearch Java High-Level REST Client
This article explores the implementation of Elasticsearch Java High-Level REST Client (HLRC) by analyzing the structure of the client, the dependencies, the error handling mechanism, serialization, its observability, and more.
23 Jan 2022
The Decision System For Shard Allocation in Elasticsearch
Curious about how does a decision system work? This article explains the deciders for shard allocation in Elasticsearch by going through their responsibility, structure, decision making, lifecycle, testing, and more.
27 Dec 2021
Slow Query Logs In Elasticsearch
Better understand the slow queries in Elasticsearch by using the slow logs. In this article, we discuss the log structure, the thresholds, and some potential root causes.
27 Nov 2021
Elasticsearch Snapshot Plugins
Elasticsearch snapshot repository plugins for AWS, GCP, and Azure
01 Nov 2021
Elasticsearch Snapshot APIs
This article summarizes the list of APIs for "Snapshot and Restore" in Elasticsearch, which allows you to perform operations easily and navigate to official documentation if you need more detail.
25 Oct 2021
Internal Structure Of Snapshot Repository
This article takes you to the Elasticsearch snapshot repository to explore its internal structure and understand the contents and uses of different files.
04 Sep 2021
Read more... (27 articles)
Java
BlogSearch Architecture
The overview of the BlogSearch, a simple search service for blog posts.
26 May 2022
Setting Up Monitoring For Java With Datadog
This article explains how to set up Datadog monitoring for a Java application and an Elasticsearch service running in Alibaba Cloud.
27 Mar 2022
Change Log Level At Runtime in Logback
This Q&A explains how to change logger level dynamically at runtime via RESTful API for your Java application when using Logback.
18 Dec 2021
Audit Logs
This article discusses how to implement a simple audit logs solution with Java JAX-RS, including requirements, considerations for the implementation, and 3 different solutions based on Java Servlet, Jetty, and JAX-RS filter.
20 Nov 2021
Using Java Time In Different Frameworks
How to use Java Time in different frameworks? This article shares examples in Java concurrency classes, Jackson, Akka, and Elasticsearch.
25 Oct 2020
Controlling Time with Java Clock
Use java.time.Clock to control time in your unit tests. This article will mainly focus on usage of fixed clock and offset clock.
24 May 2020
Read more... (31 articles)
Testing
JUnit 5: Dynamic Tests with TestFactory
How to write dynamic tests using @TestFactory in JUnit 5? This article explains the syntax, different return types, the test lifecycle, and potential use-cases.
09 Apr 2021
Writing Parameterized Tests in JUnit 5
Improving code quality using parameterized tests of JUnit 5! This article explains the motivation, the basic syntax, different annotations, and IDE-related actions about parameterized tests. Also, when you should or shouldn't use it and how to go further from here.
31 Jan 2021
Controlling Time with Java Clock
Use java.time.Clock to control time in your unit tests. This article will mainly focus on usage of fixed clock and offset clock.
24 May 2020
How CompletableFuture is tested in OpenJDK?
How CompletableFuture is tested in OpenJDK 14? What can we learn from it?
10 May 2020
Mockito: 3 Ways to Init Mock in JUnit 5
Initialize Mockito mock objects in JUnit 5 using MockitoExtension, MockitoAnnotations#initMocks, or Mockito#mock.
19 Apr 2020
Testing Elasticsearch With Docker And Java High Level REST Client
Testing Elasticsearch with docker and Java High Level REST Client
05 Apr 2020
Read more... (14 articles)
Concurrency
Wrap Elasticsearch Response Into CompletableFuture
Wrap Elasticsearch client response into CompletableFuture in Java for Elasticsearch transport client or Java high level REST client.
26 Jul 2020
Why Do We Need Completable Future?
Why do we need CompletableFuture? What is its strength compared to synchronous code and classic future in Java? How to remember its APIs?
26 Jun 2020
Write An Actor In Akka
How to write a new actor in Akka in Java? This post explains actor creation, message reception, and testing.
20 Jun 2020
3 Ways to Handle Exception In Completable Future
How to handle exception in CompletableFuture? This article explains the difference between handle(), whenComplete(), and exceptionally().
30 May 2020
How CompletableFuture is tested in OpenJDK?
How CompletableFuture is tested in OpenJDK 14? What can we learn from it?
10 May 2020
Asynchronous Processing in JAX-RS 2.x
Quick introduction of asynchrnous processing in JAX-RS 2.x on both server-side and client-side.
15 Mar 2020
Read more... (10 articles)
RESTful APIs
Internal Working of the GitLab API Go Client
The internal working of the GitLab API Go Client (xanzy/go-gitlab): usage, structure, request, marshaling, error handling, CI, advanced features, and more.
04 Dec 2022
OpenAPI Overview
The key concepts provided by the OpenAPI Initiative, e.g. OpenAPI spec, code generator, schema, build, api-diff, and how they may be useful for your project.
31 Oct 2022
Asynchronous Processing in JAX-RS 2.x
Quick introduction of asynchrnous processing in JAX-RS 2.x on both server-side and client-side.
15 Mar 2020
Testing JAX-RS Resources
This article explains how to set up and tear down a Grizzly Server for testing JAX-RS resources, how to create a HTTP request and assert the response using JUnit 4. And finally, the limits of testing API in reality.
18 Dec 2018
JAX-RS Client API
This post explains what is JAX-RS Client API and how to use it via Jersey Client API. We will talk about the Maven dependencies, Client, WebTarget, and HTTP response.
11 Dec 2018
Exception Handling in JAX-RS
This post explains exception mapper, how to register it in JAX-RS application programmatically or via annotation, the exception matching mechanism (nearest-superclass), and more.
03 Dec 2018
Read more... (10 articles)
Git
JGit: Config Loading Optimization
How JGit optimizes internally the configuration loading process using file snapshots and reduces unnecessary file I/O?
08 Sep 2019
Prepare Commit Message using Git Hook
Create a Git hook prepare-commit-msg for inferring JIRA ticket as commit message prefix, based on the branch name.
23 Jul 2019
Merging 20 Git Repositories
Recently, I merged 20 Git repositories into a single one while keeping the history. Here's how I did it.
09 Mar 2019
Customize Git Prompt in MinGW
Customize Git prompt to show dirty-state, untracked files, stash, upstream in your Bash console: MinGW64 (Minimalist GNU for Windows x64).
11 Nov 2018
Merging Git Repositories
Engineering story: how I merge two Git repositories and what are the hidden tasks you didn't think about.
06 Nov 2018
JGit: Protect Branches on Git Server
If you're using JGit for your Git server, you can combine Git config (.git/config) and a customized pre-receive hook to protect branches on a specific Git repository.
30 Jul 2018
Read more... (17 articles)
All Categories
If you didn't find what you want in the highlighted categories above, here are more categories to discover :D