Modularizing the Monolith - Jimmy Bogard - NDC Oslo 2024

  Рет қаралды 12,276

NDC Conferences

NDC Conferences

Күн бұрын

This talk was recorded at NDC Oslo in Oslo, Norway. #ndcoslo #ndcconferences #developer #softwaredeveloper
Attend the next NDC conference near you:
ndcconferences...
ndcoslo.com/
Subscribe to our KZbin channel and learn every day:
/ ‪@NDC‬
Follow our Social Media!
/ ndcconferences
/ ndc_conferences
/ ndc_conferences
#architecure #ddd #microservices
The journey into microservices started clean - we had small, independent services that worked great on our local machine. Everything was greenfield and productivity couldn't be higher. Until the production switch flipped and nothing worked in a proper distributed environment.
Something went horribly awry in our microservice megadisaster, but monoliths can ease the pain by removing the distributed nature of our system. However, we don't want to repeat our mistakes of creating a big ball of mud, or a big ball of distributed mud. Enter the modular monolith, an architecture that preserves the beneficial aspects of a single application and the advantages of isolated areas of data and behavior.
In this talk, we'll look at the various patterns of modularizing a monolith. We'll answer such questions as "what even is a Module?", how to draw module boundaries, and evolutionary design techniques to migrate an existing monolith. Finally, we'll look at techniques to extract modules into services, giving the best possible chance for a microservice architecture to thrive.

Пікірлер: 21
@TechTalksWeekly
@TechTalksWeekly 24 күн бұрын
This is a fantastic talk and it has been featured in the last issue of Tech Talks Weekly newsletter 🎉 Congrats!
@brynyard
@brynyard Ай бұрын
Somebody seriously needs to make a talk why _not_ just turn everything into completely independent modules. Or at least where to put the boundaries. Hint: There is a cost to it, just as the cost of updating a monolithic codebase.
@Alex-lu4po
@Alex-lu4po 24 күн бұрын
Oh. Would love that!
@juveraey
@juveraey 5 күн бұрын
been there 3years counting. not seeing the ends yet. decoupling is hard
@bjorkgren.tobias
@bjorkgren.tobias Ай бұрын
Will be an interesting watch!
@fburton8
@fburton8 Ай бұрын
How many fundamentally different commercial business processes that can be embodied in software are there really, given that details can be parameterized or templated? Am I wrong in thinking the same wheels are being reinvented over and over again?
@alberthalbert1153
@alberthalbert1153 21 күн бұрын
> Am I wrong in thinking the same wheels are being reinvented over and over again? No, your hunch is absolutely correct. That's why GitHub exists - programmers got tired of writing the same stuff over and over.
@OttoGebb
@OttoGebb 29 күн бұрын
> Meaning changes when going from module to module, here it's not ItemPrice, its CatalogItemPrice. There it's not ItemPrice, it's CartItemPrice. Reminds me of bounded contexts from DDD (the meaning of a laguage term changes from context to context). Why no reference to that, Jimmy?
@FenelZ
@FenelZ 27 күн бұрын
(From my experience) people start rolling their eyes every time they hear about complex concepts such as ddd, solid, xp, structured design, etc. it's easier to make them understand the rationale behind the concepts and only then say "...and that's what DDD/SOLID is about"
@greyrabbit2157
@greyrabbit2157 14 күн бұрын
​@@FenelZ "complex" lmao the only complex thing is my inferiority complex
@nove1398
@nove1398 17 күн бұрын
When was this originally aired
@marcm3623
@marcm3623 Ай бұрын
3:56 bis 6:30 the Problem with boundaries and Microservices, führt zu wir wollen Modularisierung ohne big ball of mudd
@bfg5244
@bfg5244 Ай бұрын
25:54 hidden ads exposed
@vincentcifello4435
@vincentcifello4435 28 күн бұрын
With all due respect, there are so many self-contradictory statements here that one could literally say they are modularizing their application when doing the exact opposite. Where exactly in that vertical slice pipeline from database to ui does it receive or transmit data to another slice? The obvious answer is nowhere. If you are sharing data, then the slice is not modular because it can’t complete its own responsibility. Isn’t that the very essence of a vertical slice? Why even bother discussing vertical slices and modularity if you are going to immediately give up and break encapsulation?
@user-tb5ir6wh9g
@user-tb5ir6wh9g 21 күн бұрын
> Where exactly in that vertical slice pipeline from database to ui does it receive or transmit data to another slice? Usually it happens in Apllication Services or Transaction Scripts > If you are sharing data, then the slice is not modular because it can’t complete its own responsibility. Isn’t that the very essence of a vertical slice? To get different services work together you should always bring some coupling. If your boundaries are correct then the coupling is called "loose"
@Elmiger
@Elmiger Ай бұрын
Most of these points seem to be applicable to microservices in a monorepo aswell. Yes deployment topics are difficult but there is a high chance that you are going to end up with threading/performance issues on huge services which are no bit easier to debug imho. Once you run into performance / memory issues you probably wish you could narrow the search down to one kubernetes pod of service x instead of "the application". Not saying i dont like modular monoliths, they are the way to go for new projects id say. But nothing more.
@Rick104547
@Rick104547 Ай бұрын
There are many ways of finding performance bottleneck to for instance an endpoint (just logs will give you that) or even line level with profilers. Not sure how microservices makes that easier imho.
@Elmiger
@Elmiger 29 күн бұрын
​@@Rick104547Sure, never said its impossible :) multiple deployment units should have less complexity and therefore less potential breaking points. Splitting off functionality that is mature to some degree seems to be the way to go in my opinion. Still, having worked with microservices for quite a while i wouldnt recommend the "micro" part, especially not as a starting architecture for a new project.
@purpinkn
@purpinkn 23 күн бұрын
never ceases to amaze me how terrible these conference organizers are at sound
@JonasThente-ji5xx
@JonasThente-ji5xx Ай бұрын
First
@flashflexpro
@flashflexpro 23 күн бұрын
JAVA OSGI ?
The Best Programmer I Know • Daniel Terhorst-North • GOTO 2024
48:33
GOTO Conferences
Рет қаралды 19 М.
GTA 5 vs GTA San Andreas Doctors🥼🚑
00:57
Xzit Thamer
Рет қаралды 27 МЛН
1ОШБ Да Вінчі навчання
00:14
AIRSOFT BALAN
Рет қаралды 6 МЛН
CQRS pitfalls and patterns - Udi Dahan - NDC Oslo 2023
59:26
NDC Conferences
Рет қаралды 25 М.
What is OpenTelemetry?
12:55
Highlight
Рет қаралды 5 М.
Turns out REST APIs weren't the answer (and that's OK!)
10:38
Dylan Beattie
Рет қаралды 156 М.
.NET and C# are in trouble. Here is what I'd do.
10:57
Ed Andersen
Рет қаралды 59 М.
Don’t Build a Distributed Monolith - Jonathan "J." Tower - NDC London 2023
1:04:02
What's new in .NET 8 & C# 12 - Filip Ekberg - NDC London 2024
58:49
NDC Conferences
Рет қаралды 17 М.
40 Years Of Software Engineering Experience In 19 Minutes
19:10
Continuous Delivery
Рет қаралды 54 М.