Great Migrations: Upgrading a Component Library at Scale

Rate this content
Bookmark

At Jumbo Tech Campus we have a distributed model when it comes to our component library. The way we work on our shared codebase has helped is in migrating from Vue2 to Vue3 with the combined efforts of the entire frontend capacity.

Joran Quinten
Joran Quinten
22 min
15 May, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

This talk explores the migration and upgrading of a Component Library in Vue and Nuxt. It draws inspiration from nature's great migrations and emphasizes the need for collaboration and compatibility. The talk discusses the team setup, including microservices and standardized modules. It highlights the migration from Vuex to Pina or Apollo Clients in micro frontends. The distributed approach to maintaining the component library is emphasized, as well as the use of Vue Demi for upgrading to Vue 3. The talk emphasizes the importance of delivering value and supporting both Vue 2 and Vue 3 in the migration process.

1. Introduction to Migrations and Component Library

Short description:

Thank you for joining me today for this talk about great migrations and upgrading the Component Library. I'll be sharing a story that works for our organization and may inspire you to apply similar approaches in your own company. We'll be upgrading and migrating everything built in Vue and Nuxt. Let's get started. My name is Johan, a front-end developer at Yumbo. Feel free to reach out to me with any questions.

All right. So, thank you for joining me today for this talk about great migrations, upgrading this Component Library thingy. And what I'm going to tell you or the story that I'm going to be sharing is something that works for us, for our organization, and it doesn't necessarily directly apply to your organization, but hopefully you can take some inspiration or some parts of it to apply within your own company or organization.

And what it says, Component Library, here at the title, it's basically about the entire environment that we have because everything that we have is built in Vue and Nuxt. So we'll be upgrading and migrating everything basically during this talk, if you bear with me. So let's get started.

So my name is Johan. As you can see, I'm a front-end developer. I work for Yumbo. I'll explain a bit later about what that is. You can find me on Twitter, you can find me on Mastodon or on my personal webpage. If you have any questions related to this topic or any other topic, feel free to reach out to me after this presentation or just chat with me regarding these topics.

2. Migration Examples from Nature

Short description:

This presentation is inspired by BBC's series about nature's great events, particularly the great migration episode. We will explore various migrations and learn from them. The wildebeest migration is the largest, with over a million beasts traveling 1800 miles. Caribou have the longest migration path, covering 3100 miles each year. Fire ants collaborate to traverse water, while developers face challenges like moving requirements and bug infestations. We will investigate patterns for optimizing migration and define migration as a period of moving.

Now, this whole presentation is sort of inspired by BBC's series about nature's great events, and in this particular case, the great migration episode. You can see here a picture of a young David Attenborough wrangling something that resembles a lizard or something. I was watching these series when I was younger, usually with my dad, so I have very fond memories of this series, and that's why I think it has a nice analogy to what we are doing in software development.

We will be seeing how the pros do it in nature, migrating, and what we can learn from it in our day-to-day job. So, I picked a couple of migrations that stand out for various reasons, and let's take a look at them. I think the most famous one is of course the wildebeest migration. I've written some things down about it because I don't know all of the details by heart, but this is the biggest migration there is. It's actually a super-herd made of wildebeests, zebras, and gazelles, and they are with a million or more than a million beasts migrating. They sort of take a journey that's 1800 miles or 2900 kilometers and it's a round-trip from Tanzania to Kenya and back. And while they are doing this, with the massive scale that they have, they actually play a role in forming or adjusting the landscape. So that's how big this is. And they have to traverse crocodile-infested rivers. They have to overcome droughts. They're preyed upon by lions, and what they're actually doing is they rear calves while they are migrating. If you take a look at the analogy, they are actually pushing stuff to production while migrating. I think this is really an interesting and impressive feat.

And then we have the caribou or reindeer, whatever you want to call them, and they have the longest migration path that we have on land. So they cover up to 3100 miles or 5000 kilometers each year and they move from their rentering grounds to their calving grounds in spring. And then back to their wintering grounds during fall in sort of a circular pattern. So the timing and distance about those migrations can vary on certain factors such as the weather patterns, availability of food and water, and risk of predatories or predators. So this is the longest migration.

And then we have, this is peak collaboration, we have the fire ants in the forests of Brazil, the rainforests, and these can form up to bodies of more than 100,000 ants clinging together and they do this in order to traverse water. And this is an interesting way of moving about, right? So they are experts at collaborating and the ants at the bottom of this body, they need to cling on for dear life in order to avoid being submerged while the ones at the top, they run the risk of being eaten by birds and other predators. And then there is the final bit of the puzzle. This is the elusive pack of developers and they typically move about in scrub teams of various sizes and they have to deal with other dangers such as moving requirements, Friday deployments, and bug infestations, and get up outages. So what we will do is we will investigate patterns for optimizing migration patterns and see if there's anything we can learn from nature. Let's first start with a definition. So what do we mean with a migration? And for the sake of this talk, let's consider this. So it is a period because it doesn't happen instantly, it takes time and effort of moving. Well, the moving could be anything from ants to people or even code.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Design Systems: Walking the Line Between Flexibility and Consistency
React Advanced Conference 2021React Advanced Conference 2021
47 min
Design Systems: Walking the Line Between Flexibility and Consistency
Top Content
Design systems aim to bring consistency to a brand's design and make the UI development productive. Component libraries with well-thought API can make this a breeze. But, sometimes an API choice can accidentally overstep and slow the team down! There's a balance there... somewhere. Let's explore some of the problems and possible creative solutions.
Vue: Feature Updates
Vue.js London 2023Vue.js London 2023
44 min
Vue: Feature Updates
Top Content
The creator of Vue js gives an update on the new features of the technology.
Towards a Standard Library for JavaScript Runtimes
Node Congress 2022Node Congress 2022
34 min
Towards a Standard Library for JavaScript Runtimes
Top Content
You can check the slides for James' talk here.
Composition vs Configuration: How to Build Flexible, Resilient and Future-proof Components
React Summit 2022React Summit 2022
17 min
Composition vs Configuration: How to Build Flexible, Resilient and Future-proof Components
Top Content
There are many ways of authoring components in React, and doing it right might not be that easy, especially when components get more complex. In this talk, you will learn how to build future-proof React components. We will cover two different approaches to building components - Composition and Configuration, to build the same component using both approaches and explore their advantages and disadvantages.
Building Cross-Platform Component Libraries for Web and Native with React
React Advanced Conference 2021React Advanced Conference 2021
21 min
Building Cross-Platform Component Libraries for Web and Native with React
Top Content
Building products for multiple platforms such as web and mobile often requires separate code-based despite most of the components being identical in look and feel. Is there a way where we could use shared React component library on different platforms and save time? In this presentation I'll demonstrate one way to build truly cross-platform component library with a unique approach of using React & React Native in combination.
Walking the Line Between Flexibility and Consistency in Component Libraries
React Summit 2022React Summit 2022
27 min
Walking the Line Between Flexibility and Consistency in Component Libraries
Design systems aim to bring consistency to a brand's design and make the UI development productive. Component libraries with well thought API can make this a breeze. But, sometimes an API choice can accidentally overstep and slow the team down! There's a balance there... somewhere. Let's explore some of the problems and possible creative solutions.

Workshops on related topic

Build a Data-Rich Beautiful Dashboard With MUI X's Data Grid and Joy UI
React Summit 2023React Summit 2023
137 min
Build a Data-Rich Beautiful Dashboard With MUI X's Data Grid and Joy UI
Top Content
WorkshopFree
Sam Sycamore
Siriwat (Jun) Kunaporn
2 authors
Learn how to put MUI’s complete ecosystem to use to build a beautiful and sophisticated project management dashboard in a fraction of the time that it would take to construct it from scratch. In particular, we’ll see how to integrate the MUI X Data Grid with Joy UI, our newest component library and sibling to the industry-standard Material UI.
Table of contents:- Introducing our project and tools- App setup and package installation- Constructing the dashboard- Prototyping, styling, and themes - Joy UI features- Filtering, sorting, editing - Data Grid features- Conclusion, final thoughts, Q&A