JSFoo 2017

JSFoo is a conference about JavaScript and everything related.


Modular-services in a Nodejs Monolith

Submitted by Naval Saini (@navalsaini) on Sunday, 23 July 2017

Section: Full Talk Technical level: Intermediate Status: Confirmed & Scheduled

View proposal in schedule


Microservices are described as services with a few hundred lines of code. Big organizations run such micro services in 100’s and are often looked up to by engineers in startups/smaller companies, too eager to join that league. However the hard reality is that only a few startups will survive to scale and need micro services. Busting the hype, the experts are suggesting smaller companies to adopt writing modular code instead of microservices code. How do you write modular code in NodeJs and why are they better than microservices?

Modules are blocks of functionality that are bigger than micro services, a few files ideally. A few modules can be piped/joined together to make an app. They share a lot of similarities to micro services and hence to title — modular services in a monolith. A well written modular code can be broken up into microservices (when being deployed) and also tested upon as a single app (when running on a laptop). I will introduce a dependency chaining library ArchieJs (https://github.com/archiejs) and how the modules in ArchieJs are the way to architect your Nodejs monolith.

Other recent developments outside of NodeJS world on this topic is inclusion of ‘module’ construct in Java 9. The first part of this talk is inspired by similar talks from Java world. The second part ventures into implementing the modular architecture tenets in the Js world.


  1. Compare Modular Monoliths to Microservices - engineering complexity, cost, etc
  2. Introduction to Tenets of Modular development
  3. Using Archiejs to implement Modular architecture
  4. Challenges to splitting monoliths into services; and how Archiejs addresses them

PS… I can alternatively do a crisp talk also.


Nodejs, Laptop.

Speaker bio

I have been building nodejs applications for many years and have built mostly monoliths or worked in SOA environments. I started using a library - architect.js in 2013 and have written a lot of code following the modular pattern. I am reusing code from the modules I wrote in 2013-14 in a project I am working on these days. Another of my recent interesting app is www.halfchess.com (a variation of chess).




Preview video



  •   Naval Saini (@navalsaini) Proposer 2 years ago (edited 2 years ago)

    Just to create some additional buzz, who ‘the reader’ knows about learna and monorepo.

    The difference between learnajs modules and archiejs modules is that the former is for frontend and latter for the backend. Also in case of backend modules, the goal is to finally split them into services when the need arises. This is unlike frontend modules of monorepos, where the goal is to do version management. Enhancers (which are essentially wrappers around service boundaries) take care of this splitting. Enhancers is another example of declarative programming, where how business logic (rpc or function call) is called, can be implemented by the service enhancers, and not have to be coded by the programmer.

  •   Naval Saini (@navalsaini) Proposer 2 years ago

    ArchieJS Timeline - interesting facts

    • 10 days to code Archiejs core libraries
    • 20 days to create examples and documentation
    • 11 months to learn how to pitch it right

Login with Twitter or Google to leave a comment