JPMS in Java9

Java Platform Modular System is commonly known as JPMS. The concept of JPMS i.e. Java Platform Module System came in Java 9. Its development was first started in 2005 and finally in 2017, this concept came under the project named Jigsaw. Until Java 8, we used jar files, but from Java 9 onwards, we will be using modules. Modularity is the basic rule of good Continue Reading

Running jmx2graphite as a java agent to push the JMX metrics into Graphite

In my previous blog, we discussed how to monitor a Kafka stream application using Grafana and Graphite. In this solution, we used jmx2graphite as a metrics exporter which takes the metrics from the Jolokia URL where Jolokia exposes the JMX metrics and pushes those metrics to Graphite. But, there is a problem with this solution that we need to deploy one jmx2graphite per service. So Continue Reading


Installation and switching between multiple versions of Java

Having trouble in keeping multiple versions of Java in your single system? You have approached at the right place for seeking the solution. In this blog, we will learn how to keep multiple versions of java in your system and how to switch between them as per your convenience. Before moving forward, let’s have a basic understanding of what is SDKMAN?

Functional Interfaces In Java8

Hello readers, as you have visited here, you must be aware of Interfaces in Java. Before Java 8, all methods defined in an interface are public and abstract by default. After Java 8, there were certain enhancements in interfaces. Amongst all the enhancements in Java 8, one of them is “Functional Interface”. What are Functional Interfaces? In Java, the term functional interface refers to those Continue Reading

Monitor a Kafka stream application with Graphite-Grafana using JMX metrics

A few days back, we got the requirement that we need to monitor a Kafka stream application using JMX metrics. We looked for the solution and reached to the conclusion which we will discuss in this blog. I will try to explain each and every component of the solution along with the setup and the integration part of the whole system. Proposed solution: Service (application) exposes Continue Reading

Basics of Streams In Java8

Streams are introduced in java 8. It is defined in package. A stream is sequence of objects which supports various methods. That can be pipelined to produce the result. Features of Stream Stream is not a data structure. It takes input from various sources (like array, collection, data structure) performs an operation and gives output. It does not store element. It does not change Continue Reading

Maven Simplified

This blog will provide you with the basics of maven, its importance and its life cycle. For installation, you can refer here and then continue with this blog. Why a Build tool? Initially, while learning and developing small projects, we compile limited classes and include specific JAR libraries on our own which are required to build our project. This seems very difficult in large projects Continue Reading

Are you still using `println` in Rust for debugging?

Printing to standard output is a good way to trace through your code and troubleshoot potential problems. While coding, many programmers use a lot of println statements to see what is going on at different levels in their code. If you are from Java background, you would have used System.out.println() and System.err.println() methods. If you are from Scala background, you would have used println. As Continue Reading

StringUtils – Apache common Lang3

In this blog, we will learn about the StringUtils class. It provides some nice utilities that deal with Strings as compare to java.lang.String. Before discussing its methods, let’s see one example. Movie movie = new Movie() String name = movie.getName(); if(name.isEmpty()){ } what if the movie’s name is Null. 🤔 Exception in thread “main” java.lang.NullPointerException Then definitely it will throw a Null Pointer Exception. Yes, Continue Reading

Microservices and the Saga Pattern

Microservices have become a crucial part of any enterprise these days, no matter if it is a big or a small enterprise. When something this big is present in the market why not see some fundamentals of the same? So here we’ll go through the concepts like what is a microservice and Saga Patterns that an ideal microservice should have.

Is Apache Flink the future of Real-time Streaming?

In our last blog, we had a discussion about the latest version of Spark i.e 2.4 and the new features that it has come up with. While trying to come up with various approaches to improve our performance, we got the chance to explore one of the major contenders in the race, Apache Flink. Apache Flink is an open source platform which is a streaming Continue Reading

kafka with spark

Apache Spark 2.4: Adding a little more Spark to your code

Continuing with the objectives to make Spark faster, easier, and smarter, Apache Spark recently released its fifth release in the 2.x version line i.e Spark 2.4. We were lucky enough to experiment with it so soon in one of our projects. Today we will try to highlight the major changes in this version that we explored as well as experienced in our project. In our Continue Reading

A Beginner’s Guide to Deploying a Lagom Microservice on Kubernetes

Both Lagom and Kubernetes are gaining popularity quite fast. Lagom is an open source framework for building reactive microservice systems in Java/Scala. And, Kubernetes (or K8s in short) is an open-source system for automating deployment, scaling, and management of containerized applications. Together they make an excellent stack for developing Reactive microservices of production grade. We have already seen a lot of blogs on Lagom on this Continue Reading

Knoldus Pune Careers - Hiring Freshers

Get a head start on your career at Knoldus. Join us!