Please Don't Build Microservices

preview_player
Показать описание
...unless you really really have to.

00:00 Intro
00:35 Microservices is Distributed Computation
00:51 Distributed Computation is Hard
01:03 Monoliths are simple
01:33 Problems with Distributed Systems
02:22 Microservices are expensive
03:40 When Microservices make sense
04:20 Outro
Рекомендации по теме
Комментарии
Автор

Never thought I’d be learning software development from someone using a comb as a microphone holder… excellent innovation and excellent video!

mrdbourke
Автор

There is something in between, there can be parts of your product that make sense to put in a different service.
Grab the easy wins, you don’t need to call it micro services. And you definitely don’t have to put every package in its own micro service, like some people seem to think. A lot of the times micro services are just monolithic apps with added network latency 😅

asdqwe
Автор

A decoupled modular monolith sitting behind an API gateway makes it easier to migrate to microservices in the future if needed

uziboozy
Автор

Here from Theo. Great vid! Love the humor, and the advice makes sense.

theepicgamer
Автор

I disagree about the monolithic codebase. The development experience depending on the project maybe great, but the deployment process can be really ugly depending on what tools you are using. I would rather build microservices and deal with their difficulty of maintaining them and etc then building a huge monolith and mainting its one big chunk.

aechtkuul
Автор

The lesson is don't over engineer your projects. My projects can benefit from microservices, but it is a PITA managing distributed transactions for sure. I would also agree that going from a monolith to a soa usually ends up in a complete overhaul so it isn't really migrating, it is more starting over with a more scalable design.

trxe
Автор

My dev manager mandate since he arrived is Microservices, 3 years after we have a guy (let's call him "the Architect", getting a very high salary) working on a room (very dark probably) creating some monstruosity (Saga pattern), while the rest of the devs continue working on the monolith.

The craziest thing is that he doesn't know what is a microservice or thinks we are all stupid, to give you an example, we had to integrate with a external provider like algolia, instead of adding the client to the monolith and call it a day, we had to put that client code in a separate laravel app, to then create a client on the monolith with the new "microservice". It's so nonsense that is crazy.

troneras-tv
Автор

I'm a junior dev. I started really getting interested into Software architecture like two weeks ago and heard about micro services. After that, I told all my friends how "good" they were (based on what I've watched and read about it) and today I had to build an API so I said to myself "lemme try this". Idek if what I did could be called microservices, but I tried to follow the concepts and after two hours, I just created another repository and build my good old monolith :). Now after watching your video I feel like a litteral potato. Guess I will send this to everyone that I've preached to about microservices XD.
Thanks for the knowledge, looking for more in the future😁

josephx
Автор

Absolutely enjoyed this video!! Especially the makeshift mic 😄

stey
Автор

Dude ! Thank you so much for this video.

Love your setup btw 😂❤

codewithguillaume
Автор

From my point of view microservices is not all about scaling, your can scale monolith easily just like microservices. Microservices help our team develop multiple features without worry about gitflow, conflicts, all component are easy to version up, refactor or replace. So its not based on how big your system, its about how many teams are working together.

vnzinki
Автор

Imagine having to rollback a transaction across a dozen microservices 😅 btw totally diggin' the comb

nimmneun
Автор

haha, nice ending...agreed micro service strategies are more geared toward larger scale projects (we do this on my corporate side) for reusability, hot fixes, tech debt, maintenance strategies...
but I feel you can start taking a reusable approach if you use techniques like duck modular approach for directory structure or developing in a "mono" structure (root directory handles the system stuff, apps directory houses the projects, packages directory houses the "micro services" such as a design system or linting configurations)...

hausofxd
Автор

I liked the finishing of the sentence from the thumbnail in the video.

jaysistar
Автор

Lol this guy is hilarious and very knowledgeable. Thanks for posting!

viperactual
Автор

Building an app in django and have started worrying about scaling. Rethinking microservices Lamba, API Gateway, SQS, DDB, REACT and how about mobile apps.

anonranger
Автор

I don't know if I agree that monoliths are flexible... But what you are describing is a distributed monolith and it's a design problem, nothing to do with micro services. Nowdays you can be more agile with microservices if you leverage cloud generic systems (serverless).
You build a well sized system in a week. Authentication, comunication and scalable processing. Even robust analytics and observability

dinoac
Автор

I read this argument before. But I needed someone to say this in video. Thank you for saying this publicly. I agree with you.

ArifBasri
Автор

Jeez, I was on a way to build a side project and I saw this video recommend by Theo.

I still wonder what would be the best architecture for small to mediums business.

rohitmahto
Автор

It really doesn't make sense to start a brand new project with microservices as an expectation, but if the codebase is designed well, pulling out a chunk of domain into one later shouldn't be too hard. Project I'm working on now was a mono for the first two years or so of it's life, but eventually the boundaries of certain functionality became clear that it could be segregated.

dweblinveltz