The Need

With the advent of single page applications, micro-services and back-end for front-ends, developing a distributed application can become tricky when having to worry about running all these services locally.

Working on a large-scale travel booking platform, we have a wide range of services that we need to run locally in our development environment. There are at least four micro-services from auth, search, checkout, bookings and more to come. Sitting on top of all of this there is an orchestration layer which talks to all the micro-services and lastly, there is a React front end. Therefore, having to start all six applications in our local development environment can become tedious.

In order to start each application, one must open a new tab for each application in their terminal. For each app, you have to change to the correct directory and then run the corresponding NPM start script. When something goes wrong, having to cycle through each tab, checking to see if one has crashed or if there are any errors is even more time consuming. It can be a laborious process!

Haberdashery - Your new friend

Out of this frustration, Haberdashery was born. Haberdashery, or Dash for short, is a node module which handles starting all your node services. You simply create an RC config file, pass in each project directory and corresponding start command and voilà, your node applications will start before your eyes.