Elasticsearch provides a simple way to execute all kinds of complex aggregations. Often, the result of those aggregations contains a large number of buckets, so it would be good to paginate those buckets efficiently. That's where Composite aggregation comes in handy. Composite aggregation Composite aggregation provides a way to stream all buckets…
July 19, 2022
Java-based Migrations
It is important to develop a well-designed schema at the beginning of the project, but with the new requirements, changing your initial schema is hard to avoid. These changes must be carefully applied to avoid compromising existing data but also to meet new expectations. Migration group changes that modify database…
June 21, 2022
Bridge pattern in Java
Design patterns are proven solutions for common problems that occur during software design. They provide a description or a template for how to solve such problems. The Gang of Four (GoF) design patterns are considered to be the foundation of all other patterns. Bridge pattern is a structural pattern that…
June 15, 2022
Sealed Classes and Interfaces in Java
What are they? Sealed classes and interfaces solve a unique problem that developers have been facing while trying to model real-world data using class hierarchies. As you know, with the concept of inheritance, all Java classes (that are not marked final) can be extended by any class to which they…
June 14, 2022
Java Concurrent package overview
Introduction Concurrency happens in a program when more than one process appears to be running at the same time. It enables a program to achieve high performance and throughput by utilizing the capabilities of the underlying operating system and machine. As this concept has improved the execution of systems, it…
June 13, 2022
Developing and Testing UI Components in Isolation
Developing and Testing UI Components in Isolation Unpopular opinion in the developer community is that writing UI code is plain and simple. Javascript is mostly known as “the ABC of web development,” and since mostly all popular UI frameworks are built upon it, many do not find frontend development challenging…
June 9, 2022
Adapter Pattern in Java
Introduction to Adapter design pattern During your journey through life as a software developer, you will face various problems. Naturally, you want to follow the best practices while writing code and make life easier for yourself and your colleagues. Knowledge of software design patterns which are reusable solutions of common…
June 8, 2022
Schedulers in Java
Scheduler is a mechanism that supports executing of tasks periodically or at certain periods of time, without need to run tasks manually. For example, sometimes in an application we need to run some analysis every one hour, or we need to send an email notification every Monday at 08:00 AM,…
June 7, 2022
Hibernate Caching
Introduction to Hibernate Caching When you think about Hibernate, the first thing that comes to mind is Hibernate’s ORM which enables you to use your OOP structured classes as database entities. Furthermore, Hibernate provides a multilevel caching mechanism, which is the actual topic of this blog post. If this blog…
March 21, 2022
Find your Jenkins pipeline faster
If you have a Jenkins instance you’re sharing with other developers, it can be quite hard to find your jobs. By default, Jenkins names your jobs as: #${BUILD_NUMBER} and adds the date and time of execution. When you work with other team members, your history will look something like this: Unless…
March 2, 2022
Regular Expressions (Regex) In JavaScript
Regular Expressions (or regex for short) represent a sequence of characters used to define a search pattern. The two most common use cases where you would want to use regex are validating input and searching through text. Regex syntax can be intimidating, but learning the basics can help you understand…
February 16, 2022
Structural container patterns in Kubernetes
Introduction If you have a cloud-native microservices application, you will probably think of using a containerized approach together with Kubernetes for orchestration. In order to use containers properly, you should take into account container design patterns. (more…)