DEV Community

Artem Tanyhin
Artem Tanyhin

Posted on

Hacktoberfest PR#3: Monorepos are cool but come at a cost

Hey there! Thanks for checking in again. This week, I worked on my third PR for Hacktoberfest, so let me tell you about my impressions and struggles. Maybe you'll find something useful for yourself.

Finding an issue

Since I have figured out how to search for issues last week, it didn't take me too long to find one now. The issue I found was on Kafka UI repo, and it kind of interested me and scared me at the same time.

The thing is, I've always heard senior engineers talk about Kafka and use it, but I haven't got to work with it yet. Kafka is a vast topic on its own and communicating with it to create a Web-app sounds even harder to comprehend. And that fascinated me! Learning is the only way to progress as a software engineer, and I thought that it was a good opportunity to learn about Kafka and practice my React and TypeScript skills.

Prerequisites, of some sort

Before I forked the repo and started working on the issue, I first wanted to learn more about what Kafka is and how it works on the surface. I read through a couple articles and watched some YouTube explaining videos, and it seems that Kafka is a game-changer when it comes down to scaling the project.

Instead of having to connect each microservice with each client, we can use Kafka as a middle-man for sending and receiving messages, which is very neat! And I believe that Kafka UI is a really good project to help visualize all the data and make working with it much more pleasant.

Getting to work

Like with all projects, I forked the repo and started installing the project dependencies.

Like with my previous PR, it didn't go as planned on my Windows PC, so I cloned it to my WSL again. And just like last time, I didn't understand how to properly setup until I spent around 2 hours on it...

This project was using Docker and docker-compose in order to get everything running, but since it was a Monorepo, it took me around an hour of waiting until all containers were running and all dependencies were downloaded.

It was very convenient, since I didn't have to install Kafka and create clusters, Docker did it all for me! However, now my drive is 6GB more full because of this... Convenience always comes at a cost.

Anyway, when all of that was running I got the issue fixed and opened a pull request.

In the end, I still struggle to set up projects and even smallest of changes take me hours simply because of installation...

Top comments (0)