Photo by Olav Ahrens Røtne on Unsplash

REST API is the de facto standard for the Web Application (client) to communicate with Backend Application (server).

REST API popularity increased due to its simplicity compared to well-established SOAP based Web services. GraphQL, which has clear specification and good community support, is currently playing second fiddle. “Sooner” the king RPC will be back 😃

Web Applications will need one or more of the following API client patterns. I will be using Axios and JS Promise for the demo

  1. Basic asynchronous call
  2. Orchestration
  3. Split-Join with fail-fast / Split-Join with all-settled
  4. Dynamic Split-Join
  5. Controlled concurrency
  6. Rat race

For demo, let’s use…


Photo by CHUTTERSNAP on Unsplash

Continuous learning is a necessity and a challenge to most of us. Companies invest a lot to upskill their workforce to stay relevant. I am sharing my experience and viewpoint about “How to do smart learning?” and importantly “How to keep yourself motivated?”

Remember the following:

  1. Foundation — These are something you gain over a long period of your life from schools, colleges, and/or being around wise people. There are no shortcuts
  2. IT Foundation — These are something you gain either in your college if you are part of IT related streams or during company trainings for freshers. These intense…

Photo by Sarah Kilian on Unsplash

Front-end developers, who know more than one JS framework have an advantage these days. Sometimes, the developer fluency on one “framework” (say React) gets carried on to the development work in another framework (say Vue).

I will be sharing one such experience of React developers working on Vue 2 based project. Some of the listed points would work in Vue, but that’s NOT the approach a hard-core Vue developer would have taken.

  1. Passing a function as props for event handling (callback)
  2. Ignoring the “Two-way” data binding — v-model
  3. Stumble over the reactive variables

💡I will extend the blog as and…


Photo by Pavel Herceg on Unsplash

What is Shallow Equality?

Shallow equality is verified by iterating on the keys of the objects being compared and returning true when the values of a key in each object are strictly equal for all the keys.

React relies on shallow equality between current and next state/props to decide on whether to re-render or not. Shallow Compare is the negation of Shallow Equality. Render if shallowCompare returns true.

Code fragment from React legacy add-on

Shallow equality becomes dicey when the nestedness increases. I have created the mental model (cheat sheet) to remember the intricacies.


Photo by Ning Shi on Unsplash

A lot happens during JVM Garbage Collection. GC logs would be the closest one who would have witnessed 😄 and record the events as it happens. By looking at these logs we would be able to understand how well our application behaves for a given scenario, configuration, and/or load.

Typical questions that would get answered are

  • Are there too many full GCs?
  • Are there GCs with long pauses?
  • Are there GCs happening too frequently?

Let's Learn to Talk to GC Logs in Java 9 by Poonam Bajaj Parhar

We will explore the GC logs using a simple Java program that…


Application development lifecycle period got shrink to few weeks or couple of months. Visible outcomes are expected in every iterations.

For a simple CRUD based applications, low code or no code platforms seems to be attractive. I will provide the basics of Metadata-Driven Development, which could be a mid-path between hand-crafted “effective” web application development and low-code development.

Photo by Tina Witherspoon on Unsplash

Let’s say we need to create a basic form which allows a business user to capture daily exchange rates (CRUD form) to be utilized by their business process.


“Event sourcing refers to a collection of patterns based on the idea of persisting the full history of a domain as sequence of events rather than persisting just the current state” — by Udi Dahan

Photo by Dennis Anderson on Unsplash

Spoiler Alert:

Event sourcing may not see the light of day in regular Enterprise Application development. But they have their relevance in Source Code Control Systems (like Git, SVN), Database internals (like replications, backup and recovery) and in a small part of a complex Enterprise Application.

“Event sourcing is a good fit only if you are dealing with complicated and ever changing domain” — by…


Photo by Patrick Lindenberg on Unsplash

Performing I/O usually takes orders of magnitude longer than performing in-memory processing tasks on the data. Many coders concentrate on what their objects are doing to the data and pay little attention to the environmental issues involved in acquiring and storing that data.

I/O is often the limiting factor in application performance, not processing speed
- By Ron Hitchens in book “Java NIO”

Java NIO (Non-blocking I/O) is a collection of APIs for scalable I/O. Key features includes

NIO Buffers is the basic building block for the overall implementation…


Photo by The Nigmatic on Unsplash

React published a tutorial which creates “Tic-Tac-Toe” game for the purpose of learning by doing. I liked the way Dan Abramov explained basics of JavaScript in “Just JavaScript” series and React in “Tic-Tac-Toe” tutorial.

I have created the exact same “Tic-Tac-Toe” using Vue 3. Vue 3 code looks straight-forward than React, but I will leave the judgement to the readers 😄

The final React project created by Dan Abramov is available here

The final Vue 3 project created by me is available here

💡Codepen has lot many restrictions. So both React and Vue 3 code shared has squeeze all the…


Photo by Arteum.ro on Unsplash

Learning about JVM Garbage Collection and the mechanics behind each of the Collector Algorithms is as important as learning Java language features. High-level details of the algorithms give a perspective about the lifecycle of objects, the probable failures (like an out-of-memory exception, memory leaks etc.,) and how the failures can be averted.

Garbage Collection

Garbage Collection (GC) is a form of automatic memory management. The basic operations of any Garbage Collector are

  • Object memory allocation
  • Find objects that are in use starting from GC roots — Mark
  • Free objects that are not in use — Sweep
  • Compact the memory to prevent memory…

Prasad Jayakumar

Learner, Mentor, Developer and an Architect

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store