Blog

Blog

Master Worker Architecture Using Vert.x

Today I am going to explain how Vert.x can be used for creating distributed Master Worker Paradigm. In large scale systems it’s applicable to wide variety of problems. Just to refresh our memories about what Vert.x Vert.x as we know is a lightweight framework for creating distributed microservices. It can sale up and scale out depending on your needs. It also takes away all your pain of dealing with complexity of heavily multithreaded environments, race conditions etc. etc. Primary unit of work in Vert.x is a verticle. Verticles are thread safe and......

Continue Reading


Rust Concurrency

For a long time I have been thinking about writing a sample program in Rust “the” new systems language. I have done coding in C++ for initial 5 years of my career before I moved on completely to Java and recently in one of my products a requirement came up that a low latency high performance component had to be developed. As I have written by default Java was a default choice as its my first choice anyways. However I realized that this component could not afford non deterministic nature of garbage......

Continue Reading


Microservice Architecture and Its Challenges

Microservices architecture is becoming increasingly popular while building large scale applications as it provides n number of benefits Separate lifecycle of each service so services can be deployed independently which means services can evolve separately. Each service can be fine tuned for different SLAs and scalability Each Service can be developed using different stack Each service can be monitored separately However, Microservice service architecture is not a free lunch. It throws many challenges that must be discussed and dealt with even before venturing into this (unchartered) territory. Authorization – How do you make......

Continue Reading


Apache Camel – Why You Should Learn?

Recently I encountered a problem related to integration with some third party APIs. These days it is pretty common to outsource some activity for a company, integrating with social networking website, integration with third party tools installed on company premises. These tools can be built on various technologies and integration between different component becomes an issue when people start writing code for individual component and do not target integration as one cohesive process. Result is cluttered tightly coupled development based on many assumptions. Necessity is to take a comprehensive uniform approach to tackle this......

Continue Reading


This post is about understanding architecture of an application and it’s role in web application development. I have worked in various domains writing softwares. All of us know that although developing software for each business domain throws new challenges and their needs differ vastly but there are many tools and systems which are used commonly everywhere. So, most of the web applications are following this approach what we can call 3-tier applications. You have got a presentation layer, business layer and a database layer. When you deploy you should be able to......

Continue Reading


Just attended a conference at thoughtworks office in Delhi. It was a great talk. Neal Ford was phenomenal and he really showed how technical presentations should be given. They do not have to be boring. To my surprise he has also written a book about presentations. Anyways, coming to the point. Talk started with introduction to No SQL, what it is and what kind of use cases it might be fit. As expected lot of people were from RDBMS background so it was very hard for them to initially understand the concept of No......

Continue Reading


PHP has become one of the primary technologies while developing web applications these days. While working for Talentica  I can recall at that time there was only one project on PHP and mostly people were doing Java. After PHP5 it regained it’s strength and became one of primary stack for developers. I would try to explain what is my thinking about it. There are 4 stacks that are very popular these days for an internet application to be built in a.) Java world – Spring/Grails ( I have worked on both) b.)......

Continue Reading


So In our last post I promised that we will talk about how to make monolithic code into distributed SOA architecture. Well its not easy. Once you have decided that you want to re-architect the single chunk of software in distributed manner you have to decide about different parts of the system which can be deployed on different machines and still everything will work fine. There are many problems while doing so a. How will you host these services (S in SOA) b. How will you communicate and how serialization/deserialization will happen?......

Continue Reading


Its 3rd article in Web Scalability..Today I am looking at various projects going on in Indian Start ups and I am thrilled by variety of technologies being used. While this sounds good at the same time I feel we are unable to utilize core strengths of technologies used. Their usage in architecture will always be dependent on person to person and their experience and comfort level. But some simple things if adopted early stage can give immense benefits. One such technology is our simple cache which is being used everywhere but alas not......

Continue Reading


Coding guidelines are extremely important part of a professional developer’s day to day practices. Following these guidelines differentiate between an experienced developer and a rookie. It surprises me that so many companies still ignore them and produce poor quality code that results in very expensive maintenance over the period and is so fragile that every time you add a new feature immediately bugs creeps in. I am sharing some of these guidelines which are far from exhaustive but are most important for me. Some things people might not agree with but these are my......

Continue Reading


Themetf