How to Ship Updates to 40+ Apps Every Week With Nx

code red code red

Maintaining a huge codebase is always a challenge, you need to ship features, run the business as usual, and introduce new tools, and it becomes more challenging when you have many teams contributing to the code base.

At Celonis we use Angular and Nx for monorepo and ship updates to more than 40+ apps, which have 2 million lines of code, and we are adding more apps and libraries as we go. 

Nx is a build tool, with the support for mono-repos and provides the flexibility to bring any tools/framework/technology to the mono-repo and helps to reduce build time by providing the ability to cache builds. 

Maintaining this huge codebase is a challenge, especially when you need to ship updates to them every week. More challenges come with a codebase this big; you may need new tools in your codebase, and new tools are released every week. What if you need to do a Proof of Concept, add a new Angular App, or update a new version of Angular or tooling like Cypress, Playwright, or Jest?

But we also get around 100 PRs per day from more than 30 teams contributing to the codebase; for each PR, we need to Run Unit Test, build, Component Test, User Journey test, and lint.

A new feature can break your application: how do you plan your release rollback shipping new features with confidence? But it can cause new features/ bug fixes to be rolled back from other apps; feature flags are an answer, but how can it be done in a codebase this big?

In this talk, we explore the world of Nx, where we can build, test, and deploy 40+ apps every week with the help of Nx. You will learn about: 

  • Maintaining a huge Angular code base
  • CI/CD
  • Release strategy
  • Feature Flags
  • Introducing new tools to the codebase 

Interview:

What's the focus of your work these days?

My current project is to improve accessibility and make our apps more accessible for people with disabilities while managing and improving our mono-repo, like migrating to new Angular versions.

What technical aspects of your role are most important?

Working with a large code base and communicating with multiple teams.

How does your InfoQ Dev Summit Munich session address current challenges or trends in the industry?

Most teams working on large code bases struggle with issues like build time, architecture feature flags, and, most importantly, release strategy, which is an important skill for more senior team members.

How do you see the concepts discussed in your InfoQ Dev Summit Munich session shaping the future of the industry?

I hope More teams adopt mono-repo tools like Nx and revisit how they ship features, and adopt feature flags.


Speaker

Santosh Yadav

Senior Software Engineer @Celonis, Co-Founder of This is Learning, a GDE for Angular, GitHub Star, and Nx Champion

Santosh is a Senior Software Engineer at Celonis, a GDE for Angular, GitHub Star, Nx Champion. He loves contributing to Angular and its ecosystem. He is a co-founder of This is Learning. He is also the author of the Ngx-Builders package and part of the NestJsAddOns core Team. He is also running This is Tech Talks talk show, where he invites industry experts to discuss different technologies.
 

Read more
Find Santosh Yadav at:

Date

Thursday Sep 26 / 01:20PM CEST ( 50 minutes )

Location

Ballroom B

Topics

CI/CD Frontend Architecture

Share