JSFoo 2019

On component architecture, front-end engineering and Developer Experience (DX)

Monorepo Architecture for production codebase

Submitted by sarthak saxena (@sarthak9thie) on Apr 29, 2019

Section: Full talk (40 mins) Session type: Lecture Technical level: Intermediate Status: Rejected

Abstract

A Mono repository is an architectural concept, which basically means all repos in a single repo (clear from its name). Instead of managing multiple repositories of your codebase, you keep all your isolated code parts inside one repository. An isolated part of the code that monorepo has nothing in common with monolithic apps. You can keep many kinds of logical apps inside one repo; for example, a web application having core part with multiple dependent modules or a web app and its react native mobile app sharing a common set of components.
Example showing how different modules are being exported as different GitHub repos inside the main repo (Inefficient way)
https://www.dropbox.com/s/5h5z51eb9qah3qm/Non%20MonorepoArchiTechTure.png?dl=0

Example showing how all the modules can reside inside single monorepo(monolith) and dependencies can be resolved (Efficient Way)
https://www.dropbox.com/s/7ls8gsdppgdjukw/MonorepoArchiTechture.png?dl=0

Outline

Talk breakup:
- Onboard everyone on the concept of monorepo - Dive deep into solving architectural problems of the codebase - Walkthrough the code / Hands-on session - FAQs / Questionnaires - Future scope

Requirements

Laptop

Speaker bio

My name is Sarthak Saxena! I am currently working at Playment as a senior Frontend developer. I am a Full stack web developer who strives to marry the love of web and graphic design by finding a harmonious balance between functionality and aesthetics and a very keen problem solver

Linkedin Profile: https://www.linkedin.com/in/sarthaksaxena/
Github: https://github.com/sarthak-saxena/

Links

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('You need to be a participant to comment.') }}

{{ formTitle }}
{{ gettext('Post a comment...') }}
{{ gettext('New comment') }}

{{ errorMsg }}