Consider the following piece of code: public class Counter { private static int count = 0; // Static variable public Counter() { count++; // Increment count each time a new object is created } public static int getCount() { // Static method return count; } public static void main(String[] args) { Counter c1 = new... Continue Reading →
Understanding the Differences Between FLOAT and DECIMAL Data Types in MySQL: A Case Study on Approximation Errors
A few years ago, during one of the dev testing, a fellow engineer complained that the total amount paid is not matching in API response. However, if we manually add the values in DB, it adds up to the correct amount. What could have gone wrong? As we went down the debugging path, we had... Continue Reading →
Zero To One – Ready To Kickstart Your Software Engineering Career?
This course is designed for someone who has a basic understanding of coding. The course intends to provide flavours of little bit of everything. There are also links to leetcode problems that you should solve. Leetcode problems are selected in a way to provide you familiarity with different data structures and algorithms. Please register for... Continue Reading →
Design a TTL based in-memory cache in golang
Introduction Caches are data storage layer that are used to avoid doing operation that is expensive or hard to compute. The following examples can be characterised as an expensive operation: Data which is to be fetched from database, resulting in network calls and usage of precious database resources. Data which is calculated using the response... Continue Reading →
Zero To One – Ready To Kickstart Your Software Engineering Career?
This course is designed for someone who has a basic to no understanding of coding. The course intends to provide flavours of little bit of everything. There are also links to leetcode problems that you should solve. Leetcode problems are selected in a way to provide you familiarity with different data structures and algorithms. Please... Continue Reading →
Kafka – Everything that you should know before interview
Introduction to Apache Kafka Concepts Read complete post Apache Kafka – Set up your first Kafka Producer and Consumer Read complete post Kafka Internals: How does Kafka store the data? Read complete post Reliable Data Delivery In Kafka Read complete post Troubleshooting Under Replicated Kafka Partitions Read complete post Kafka Broker Metrics And Their Debugging... Continue Reading →
What Is Stream Processing ?
What is a data stream or event stream? A data stream is an abstraction representing an unbounded dataset. Unbounded that data is infinite and it grows over time as the new record keep getting added to the dataset. The data contained in the events or the number of events per second. The data differs from... Continue Reading →
Kafka Broker Metrics And Their Debugging
If you are new to Kafka, please read the first three posts of the series given below. Else dive in. Introduction to Kafka Kafka Internals Reliable Data Delivery in Kafka Troubleshooting Under Replicated Kafka Partitions If you are preparing for an interview, this post contains most of the things that you should know about Kafka.... Continue Reading →
Tutorial For Kafka Monitoring Using JMX, Prometheus And Grafana
If you are new to Kafka, please read the first three posts of the series given below. Else dive in. Introduction to Kafka Kafka Internals Reliable Data Delivery in Kafka How do your monitor your Kafka setup? There are a number of measurement collected while Kafka is operational. We are going to collect these measurements... Continue Reading →
Reliable Data Delivery In Kafka
If you are new to Kafka, please read the first two posts of the series given below. Else dive in. 🙂 Introduction to Kafka Kafka Internals What are the guarantees provided by Kafka? Guarantee of order Assume that there are two messages - Message A and Message B. Message B is sent after Message A... Continue Reading →