Learning Kafka - Configuring Kafka Producer for High Throughput

The following post covers the common configuration parameters in Kafka Producer to improve throughput via compression and batching Browse Code on Github Contents Batching

Learning Kafka - Configuring Kafka Producer for Idempotency

The following post covers the common configuration parameters in Kafka Producer and Kafka Cluster to achieve idempotency Configuring Kafka Producer for idempotency involves various edge cases which should be considered....

Learning Kafka - Configuring Kafka Producer for Message Ordering

The following post covers the common configuration parameters in Kafka Producer and Kafka Cluster to achieve message ordering Contents Message Ordering in Kafka Scenario in which...

Learning Kafka - Configuring Kafka Producer for Message Durability

The following post covers the common configuration parameters in Kafka Producer and Kafka Cluster to achieve message durability Contents Message Durability Setting up the Kafka...

Learning Kafka - Writing a Kafka Producer in Node.js

This post covers using node-rdkafka library for writing Kafka Producers. Refer Learning Kafka - Installing Kafka, starting a Kafka Cluster & creating a Topic for setting up the...

Learning Kafka - Installing Kafka, starting a Kafka Cluster & creating a Topic

Contents Steps Install Kafka Create a Kafka Cluster Start Zookeeper Start Kafka Create a Kafka Topic with 3...

Learning Go - Using Modules in Go

I’m writing this post to summarize the salient points about using Go Modules. I covered package and dependency management in Go existing prior to modules in Learning Go -...

Learning Go - Packages and Dependency Management

I’m writing this post to summarize my understanding of Package and Dependency management in Go. As of writing this post Go modules have been introduced. This post however covers package...

Debugging 502 - Bad Gateway OR How to not get locked out of iCloud account if you use Linux?

I think I spotted a bug in iCloud and I’m writing this post to summarize an unexpected and amusing experience I had discovering and debugging it. Context

Debugging ResourceRequest Timed out error in Sequelize

While working on a project that involves building a small analytics platform using PostgreSQL, I ran into the ResourceRequest timed out error. I’m writing this post to summarize...

GraphQL - Schema and Resolvers

I have been working on an assignment for which I needed to implement GraphQL using Apollo and Express on the backend. I’m writing this post to clarify and summarize my...

SSH - The whole shebang

I’ve run into setting up SSH keys quite a few times now and I decided to finally sit down and figure out what’s happening under the hood - the concepts...

Network Topologies

I’m writing this post to summarize my understanding of some of the common network topologies and their pros and cons. Index What is Network Topology? Overview...

Using Higher order components in React

I recently had a use case for Higher Order Components while writing a mobile application in React Native. While the problem is simple I felt it’s well suited for a...

Networking devices - Which and why?

I’m writing this post as I work through the course Introduction to Computer Networks summarizing the commonly used devices on a network and their uses Hub

How to call a locally hosted server from Expo?

While developing a React Native application I needed my application running inside Expo on my mobile to access a mock server running on my laptop (development machine) I’m writing this...

Setting up a multi-container application using Docker-compose

I’m writing this post as a guide to setup a multi-container application using Docker-compose. The application will be running two services, a Node application and a RabbitMQ server. The github...

Git - Mental models and Cheatsheet

I’m collating here the basic mental models that help me reason about Git’s behavior. I plan to add more diagrams covering how various commands affect the object store as well...

Debugging with VSCode

As I’m working my way from console.log statements to appropriate debugging tools I’m writing this post on setting up multi-targeted debugging using VSCode for a Node application running...

How SSH achieves secure communication?

I wanted to demystify SSH and went through a few lectures from this course The Complete Junior to Senior Web Developer Roadmap covering SSH. The following is a summary...

Lifecycle of a Docker Container

Docker Images - Building and Caching

I’m writing this post to put down my mental model of the Image building process using Docker Structure of a Dockerfile The Dockerfile can broadly be divided...

Replication in MongoDB

I completed a section on Architecture of ElasticSearch from an online course and completed two chapters from MongoDB in Action - Replication and Scaling your system with sharding. The...

Offline first app using redux-offline

I have been working on a mobile application where I need to provide offline support. I’m writing this post to share my understanding of how redux-offline synchronizes data...

Charsets and Encoding

My run-ins with UTF-8 have so far been when I’ve copied and pasted a line of code where the encoding is specified as UTF-8. I’m writing this post...

Content negotiation during a HTTP Request-Response cycle

When a resource is requested using HTTP, the client can specify its preference and compatibility for different representations of that resource. A representation can be understood as a format of...

How domain name is resolved to an IP address?

I’d like to understand the high level steps that occur between typing a URL and having it rendered on the browser. I’m writing this post to cover the steps that...

Simplifying async flow control using generators

I’ve been trying to understand generators and their use cases. One of its utilities is in improving control flow of asynchronous operations. I’m writing this post to understand a code...

Using the middleware pattern in blue-rabbit

I’m writing a lightweight Nodejs-RabbitMQ microservice framework called blue-rabbit. It’s design is inspired from the middleware pattern as used in Koa. I’m writing this post to better understand the...

Synchronous vs Asynchronous processing

While working on the data pipeline at SegmentOne, an early stage startup I worked with, we were able to improve the message consumption rate of RabbitMQ consumers by a...