After doing this for 20 years you will realize that this is all very relative. Any system has all of these architecture styles. You can identify them all in the same system depending on abstraction level. Thats why purists can never settle on naming and keep going in circles
When I started I would hear people describe these patterns as if it was a mutually exclusive choice, that just caused everything to seem more complicated than it was.
I've been watching all your videos since you started this channel. Interesting topics and so much learning stuff. Thanks for sharing your knowledge with us. Keep up the good work.
Currently building a e-commerce site for someone, from zero. I am in the design phase and I would say I am going more Monolithic for it, modular-ish to be sure, but all packed together. Great video!
I prefer modular monolith or microkernel (with a layered architecture inside the components). Communication between components is ideally event driven. For scalability, the app can run multiple instances using events to communicate
The one that really interest me is the micro kernel pattern , because we interact with it daily but rarely get involved into developing a system that uses it
First time I've heard of a modular monolith! Always interesting to see how the industry shifts over time to new patterns. Can't seem to settle on a particular one for too long.
I am fascinated by the Microservices architecture, we Microservices at work and the more I look into it the more I feel i need to read more to understand it.
What's the differences between Layered Architecture and Monolithic Architecture. I always thought they are the same thing... I started as a dev in the 2000s and I remembered the Layered Architecture and remember doing all the BI in the Business Layer. It looks exactly like the stuff inside the Monolithic Architecture.
There’s also the concept of a distributed monolith, where many distributed services utilize a single database. It can work in your favor in some scenarios, or be a complete anti-pattern if not implemented well. Similar to a modular monolith, always build out with a clean separation of concerns, so you can more easily distribute the data, later on.
This channel is fantastic. If I had to pick a flaw in this video, it would be the diagram of the monolithic architecture. There is nothing to say a monolith cannot have multiple instances running - that is usually how they work in the case of web applications. There is almost no web application with a single instance only - although they often share a single database.
What I have seem in the wild is that all choices in terms of architectures depends on several external constraints that kind of confirm the Conways law, so for instance in a company that I worked for recently they chose the modular monolith because the platform team hadn't ways to provide a good experience to deploy new services quickly and given the pressure to deploy features asap the only way was to make a monolith but thinking about break it apart when possible. So, as always, the type of architecture to use depends.
I think it worth to mention hybrid monolith architecture, as evolution of monolith. Usually it represents as Castle + Bastions style architecture. It also can be considered as distributed Kernel + Plugins architecture. The main idea is to keep all business logic in one Castle\Kernel and put in separate microservices - Bastions, only logic which not make sense to couple with your business logic, for example 3rd party integrations, or document generation, or emailing and etc.
Is it possible to have microservice architecture without event-driven? Microservices are supposed to be independent, and therefore avoid synchronous communication. How can it do this without event-driven?
As usual, Excellent content Sahn. Can you make a video about Data Integrating Patterns? such as canonical, Scatter-gather, aggregator, Event driven consumer, Channel Adapter, Message translator, Message mapper, Messaging Gateway. Thanks
Hello ByteByteGo, I've recently been trying to work out which architecture I should use on my Web design and brand management platform Should I use monolithic or micro services there will be a number of different functionality and different apps for tasks, web design calendar etc
I am a non tech person getting to learn software architectural applications , could you be of help by providing me foundational resources to aid my knowledge? Thank u
He never states in the video that business use only one of these architectures. He’s just giving a short digestible explanation of some of the most used ones in his opinion.
@@marflage They share some of the same ideas (e.g. having independent services). Some of the differences stem from their age and intent - SOA almost always use SOAP / Webservices to offer functions, whilst microservices tend to use REST API & JSON (but not exclusively) and tend to be resource-based; SOA requires a centralized broker or service registry, which microservices do not; in SOA the services often tie back to parts of the business (e.g. sales), where as microservices are not bound by that intent; microservices are more likely to be stateless (depending on how purist you want to be) compared to SOA services.
Amazing explanation of various software architectural patterns! Its giving me a lot of foundational knowledge on how the systems are built and helping understanding the core concepts! Would request if you can make more such videos on core foundational concepts like what is a runtime, daemon, middleware etc. Would be super helpful for someone who is starting out to learn these. Thank you so much
Great insights! Concise breakdown of key architecture patterns. Valuable resource for navigating complex systems. Appreciate the clarity and relevance. Thank you for sharing!
I liked more the monolithic architecture (and its modular one too), and the microservices architecture, since I am more focused on web design and those are the ones I have seen the most. Maybe using the monolithic one with a small project, and design it in a way where you can easily transition to a microservice architecture if the project is growing in a complex way.
I'm really intrigued by the modular monolithic architecture, because important factors I feel when choosing the architecture of a particular system are the simplicity and adaptability of the particular architecture. An architect is not God; he/she cannot always remember the purpose of choosing a particular architecture for a system, which is why a first glance should erase all doubts.
What about Actor based solutions using things such as Akka, Erlang etc? Are they not being used anymore, or do the Event-Driven Architectures encompass these as well? Actors were quite big a few years ago for their ability to scale and handle concurrency, so are they still a thing?
“What design resonates with you” makes me instantly think of @teej_dv ‘s comment about int length. You might love some of the more exotic designs, but your system probably doesn’t need it.