Monolithic vs Microservice Architecture: Which To Use and When?

Поделиться
HTML-код
  • Опубликовано: 13 май 2024
  • When it comes to software architecture, there are generally 2 main types, monoliths, and microservices. In this video, I cover the differences between each of them and discuss which ones you should be using for your next project.
    With microservices, you need to have a good understanding of cloud-based platforms. AWS is used by a lot of companies, and you can earn more if you have a certification such as AWS Certified Solutions Architect. Zero To Mastery covers everything you need to learn in one of their courses (use FRIENDS10 for 10% off) academy.zerotomastery.io/a/af...
    ☕️ I don’t accept paid sponsorships and I have turned off mid-video ads. You’re welcome! If you would like to support my channel see: ko-fi.com/alexhyett
    📨 Join my free weekly newsletter for advice, technology and more: newsletter.alexhyett.com
    🗺️ Backend Developer Roadmap: www.alexhyett.com/backend-dev...
    📝 Related blog post: www.alexhyett.com/monolithic-...
    🎓 RECOMMENDED COURSES (Use code FRIENDS10 for 10% off)
    The Complete Web Developer Course - academy.zerotomastery.io/a/af...
    The Complete Junior to Senior Web Developer Roadmap - academy.zerotomastery.io/a/af...
    Complete SQL + Databases Bootcamp - academy.zerotomastery.io/a/af...
    📚 RECOMMENDED BOOKS
    Clean Code - geni.us/5AEwj2
    Domain Driven Design - geni.us/WiR0Q0x
    Design Patterns - geni.us/5ncUt
    Developer Hegemony - geni.us/lAXy
    Pragmatic Programmer - geni.us/GfNj9
    Data Structures and Algorithms Made Easy - geni.us/sqg6kJ
    Refactoring - geni.us/ufAP0mE
    Pragmatic Thinking and Learning - geni.us/x81A
    Microservices - geni.us/8vMA
    🚀 MY FAVOURITE TOOLS
    PIA VPN - piavpn.com/AlexHyett (83% off)
    Visual Studio Code - code.visualstudio.com/
    Obsidian - obsidian.md/
    Notion - affiliate.notion.so/alexhyett
    ⏳ TIMESTAMPS
    00:00 - Introduction
    00:16 - What is a Monolith?
    00:53 - Advantages of Monoliths
    02:09 - Disadvantages of Monoliths
    03:36 - Microservices
    04:13 - Microservice Communication
    05:29 - Advantages of Microservices
    07:46 - Disadvantages of Microservices
    09:17 - Which should you use?
    You can check out more of my favourite tools on my website:
    www.alexhyett.com/tech/
    🔗 MY KEY LINKS
    🌍 Blog - www.alexhyett.com/
    🐘 Mastodon - social.alexhyett.com/@alex
    🧑‍💻WHO AM I
    I'm Alex, a Software Developer and RUclips working in the UK. I make videos about software development to help developers with the skills they need to be senior developers. As well as this RUclips Channel, I also write articles on my website (alexhyett.com) as well as write a regular newsletter that contains some thoughts to help aspiring developers.
    ‼️ DISCLAIMERS
    Some of the links in this description are affiliate links, for which I get a small commission, at no extra cost to you 🙂. I appreciate you supporting my channel so I can continue providing you with free software development content!
    #coding #programming #developer
  • НаукаНаука

Комментарии • 73

  • @thabangmotaung9637
    @thabangmotaung9637 8 месяцев назад +7

    The structure of your content delivery makes it easy for me to understand these concepts in a snap.

    • @alexhyettdev
      @alexhyettdev  8 месяцев назад +2

      That's awesome, I am glad to hear it!

  • @olter1000
    @olter1000 Месяц назад

    Thank you very much. You stopped me from overengineering and solving problems which doesn't exist for now in my startup.

  • @Ramin_Esfandiari
    @Ramin_Esfandiari 9 месяцев назад +1

    Very well done and concise video. Thank you.

  • @yourownazog8069
    @yourownazog8069 18 дней назад

    amazing content and the level of my production. Thanks for what your doing

  • @puliranjit
    @puliranjit 10 месяцев назад +2

    Love your learning videos ..well-structured , short and to the point

    • @alexhyettdev
      @alexhyettdev  10 месяцев назад +2

      Thank you! I am glad you like them!

  • @Nicetrycutiepie
    @Nicetrycutiepie 25 дней назад

    great in detail explanation. thank you so much Alex.

  • @halooshka1904
    @halooshka1904 7 месяцев назад

    love the explanation! Very easy to understand :)
    Thank you

    • @alexhyettdev
      @alexhyettdev  7 месяцев назад +2

      I am glad you liked it! Thanks for commenting.

  • @MaximePoulain
    @MaximePoulain 9 месяцев назад +8

    A topic that could be interesting to delve further into is the Modular Monolith. In contrast to microservices where the boundary is just physical, modules in a monolith are logically isolated from each other. This brings benefits like faster deployment and helps avoid issues of creating 'spaghetti code' that could cause problems for others. However, designing a modular monolith can be challenging, as it requires expertise in the design of your domain and the identification of its sub-domains (bounded context in DDD terminology) but also with the communication when an operation span accross multiple modules. Overall, I believe this approach combines the pros and cons of both monolith and microservices architectures effectively for many use cases.

    • @hyper_channel
      @hyper_channel 8 месяцев назад

      This right here is my go to. A monolith where the different services / features can be extracted as a microservice if needed, (usually those hurting for resources / performance). Microservices just have too much overhead and moving parts to make sense as the starting point without a very good reason.

    • @cflowlastname548
      @cflowlastname548 6 месяцев назад +1

      Before the Microservice hype, these system were just called modular systems. I actually wrote one myself based on my own intuition and experience. It was not until a couple of years later when I saw the word "Modular monoliths" in my youtube feeds I realized there was an exact word for what I had done.

  • @abelmillion4341
    @abelmillion4341 8 месяцев назад

    Good Job man, am grateful for your videos

    • @alexhyettdev
      @alexhyettdev  8 месяцев назад +1

      Thank you! I am glad they are useful for you.

  • @yankluf
    @yankluf 7 месяцев назад

    Sooo clear!! Thanks a lot! 😁

  • @gabrielnzete8913
    @gabrielnzete8913 5 дней назад

    Fantastically explained

  • @xiiEJRAM
    @xiiEJRAM 11 месяцев назад +5

    Your videos quality and the content you made are epic , I really love your channel 👌🏻

    • @alexhyettdev
      @alexhyettdev  11 месяцев назад +1

      Thank you very much!

    • @franciscodevia7446
      @franciscodevia7446 11 месяцев назад

      Ñ😊ñññ😊ññññ😊ññññññ😊😊😊😊

    • @franciscodevia7446
      @franciscodevia7446 11 месяцев назад

      00pp0p00pppp0pp0ppppp0ppppp0pp0ppppppppppppppp0ppppppp

  • @rmanjit
    @rmanjit 10 месяцев назад

    Great work !! This is high quality content !!

  • @user-se8hw9kn3m
    @user-se8hw9kn3m 8 месяцев назад

    this is such a gold content. Thank you so much Alex

    • @alexhyettdev
      @alexhyettdev  8 месяцев назад +1

      You're welcome, thank you for commenting!

  • @geybriyel2416
    @geybriyel2416 26 дней назад

    this is very clear. thank you

  • @vijayas8007
    @vijayas8007 4 месяца назад

    Wow Alex very well explained .. I went through many videos finally i got the difference as I come back from a break in my IT career. Thanks looking forward for more of such. Do you have anything on API manager

  • @edvwe
    @edvwe Год назад +2

    Very informational, thanks

    • @alexhyettdev
      @alexhyettdev  Год назад +3

      Thanks Marcin, I am glad you liked it!

  • @resistance_tn
    @resistance_tn 10 месяцев назад +13

    This is high quality work thank you ! Would love to see more advanced topics on networks or protocols or anything related to backed ! Keep up the great work :)

    • @alexhyettdev
      @alexhyettdev  10 месяцев назад +2

      Thank you! Yes I will be definitely be covering more backend topics.

  • @muhammadwaqasiqbal8243
    @muhammadwaqasiqbal8243 4 месяца назад +1

    Hi there Alex,
    Lovely video and It has cleared a lot of misconceptions regarding both architectures, I have a question however, Is there any metric value or any parameters defined based on which we could choose one or the other? I would really appreciate your take on this.
    Thanks

  • @korniszon68
    @korniszon68 8 месяцев назад

    Wow, can't belive you have that little views. It's very nice told, all the pros and cons. You really know this stuff well. I always ask this question on the interviews and it appears that it's not that clear to most of devs :(

    • @alexhyettdev
      @alexhyettdev  8 месяцев назад +1

      Thank you! Yes unfortunately useful videos on software development don't always get as many views as other topics.
      Maybe I should do a series on topics to learn before going for an interview!

  • @imanshirkhodaee1704
    @imanshirkhodaee1704 7 месяцев назад

    This is a very helpful content. thanks a lot.

  • @sosyalant
    @sosyalant 11 месяцев назад

    you deserve more subs. Fantastic job

    • @alexhyettdev
      @alexhyettdev  11 месяцев назад +1

      Thank you! Hopefully one day!

  • @fahadaslamtanoli
    @fahadaslamtanoli 5 месяцев назад

    very good explanation can you explain when to use service endpoint or service bus

  • @joeddo
    @joeddo 2 месяца назад

    great video. ty

  • @elifantshoos708
    @elifantshoos708 Месяц назад

    Dying. The stock footage of code magically getting manifested on the scenes as the person is waving around their finger. LOL

  • @vktop2
    @vktop2 Год назад +2

    Nice video, I have a question, for example in a system I have a microservice customer and this service will have in its database a table with the types of customer document, in this system could also exist a microservice user and could also have in its database a table type of user document, in this case how to work these data that concern several microservices since the types of documents are common between both entities; should I create 2 tables document type 1 in each microservice? Thank you

    • @alexhyettdev
      @alexhyettdev  Год назад +3

      Microservices should always have their own database. If you have data that is common between them, then you can have copies of the same data in each database. Not ideal, but it is quite common practice. Each domain only stores the data they are interested in. One option for you would be to have a document microservice that all the other microservices use for file storage. This is particular useful when you have strict requirements such as encryption or access restrictions that you need to adhere to. It can all be done in one place without needing the same logic in every microservice that needs to store documents.

  • @joan.paucar
    @joan.paucar Месяц назад

    What do you think about tools like TurboRepo ? I mean, we can use that tool for our apps minimizing the disadvantages of monoliths ?

  • @ITSolutions-bl3dp
    @ITSolutions-bl3dp Месяц назад

    Thanks ❤sir

  • @faizanahmed9304
    @faizanahmed9304 Год назад +4

    amazing video

  • @amitev
    @amitev Год назад +1

    Great content and great video quality! What microphone are you using?

    • @alexhyettdev
      @alexhyettdev  Год назад +1

      Thank you, I am using a Blue Yeti X. I have had the same microphone for all of my videos but the sound quality wasn't as good to start with.
      The key is to have the microphone as close as possible and to make sure you have lots of soft furnishings in your room to absorb any echos.
      I now have curtains, cushions, a rug and a fluffy blanket to absorb the sound.
      Video wise I am just using my iPhone XR with the OBS Camera app. My earlier videos used a Logitech Brio 4K but the colours were always a bit off.

    • @amitev
      @amitev Год назад +1

      @@alexhyettdev thank you very much for the comprehensive answer! Ideas for next videos - how to manage complexity; how to manage work/technical debt in a huge legacy code base, hope to cope with toxic cowerks/arrogant seniors.

    • @alexhyettdev
      @alexhyettdev  Год назад +1

      Thanks for the ideas, I will add them to my backlog!

  • @Venkatesh-vm4ll
    @Venkatesh-vm4ll 6 месяцев назад

    Really thank you for the word , start business with monolithic, i am confused in that

    • @alexhyettdev
      @alexhyettdev  6 месяцев назад +1

      Microservices are usually a bit overkill if you are starting out with a new application with no traffic. In these cases one big application (monolith) is usually better until you have scaling problems and need to split it up.

  • @aminzuar5767
    @aminzuar5767 Год назад

    Thank uuuuu 🙏🙏🙏

    • @alexhyettdev
      @alexhyettdev  Год назад +1

      You’re welcome, I am glad it was helpful.

  • @anjanigente4538
    @anjanigente4538 3 месяца назад

    can one microservice depend on the other? and also is it necessary to have separate database for each microservice?

  • @vishalkarthik.v7209
    @vishalkarthik.v7209 6 месяцев назад

    Hello Mr.Alex
    if there are multiple application and we use monolith then should we use one single piece of code or respective codes for respective application
    Thank you !

    • @alexhyettdev
      @alexhyettdev  5 месяцев назад

      Generally with monoliths we are talking about one single application but in some cases you can have smaller supporting applications that go with it. I prefer to do one git repository per application but in the case of microservices that are closely related it can be easier to just have a mono repo.

  • @david2am
    @david2am 6 месяцев назад

    thanks!

  • @mumasmusic
    @mumasmusic 7 месяцев назад

    Great work!
    One small suggestion tho. The constant bg music is quite distracting.

    • @alexhyettdev
      @alexhyettdev  7 месяцев назад +2

      Sorry about that. I have turned it down a lot in my newer videos. I would get rid of it completely, but it seems to improve retention.

  • @BenRangel
    @BenRangel Месяц назад

    The distinction is too blunt for my taste: i view microservices as one team separating their work into more than one service despite not really having to. And monoliths being a big service used by multiple teams. But most use something in between: pretty much one service per team

  • @kasparsr
    @kasparsr 3 месяца назад

    modular modulyth

  • @marcocoratella1556
    @marcocoratella1556 2 месяца назад

    In fact the handsome developers, that want absolutely to show how handsome they are, they say that microservices is amazing. But indeed you need to be pragmatic and really understand what means working as a software developer sometimes first of all

  • @xConundrumx
    @xConundrumx 7 месяцев назад +6

    I almost could not disagree more on these advantages you claim Monoliths have. Mostly because in reality nothing ever remains even remotely small enough for those advantages still hold up. Every single 'monolith' I have worked on in my 30 years turned out to be a massive app before it got to production. And that was with all the trimmings of those times. And you always, ALWAYS en up with a mess when multiple people have to work on it. Just my 2 cents.

    • @alexhyettdev
      @alexhyettdev  7 месяцев назад +4

      It really does depend on the scope of the application. If you have a team of 8 working on big enterprise application that you know is going to end up quite large then just start with microservices or at least mini monoliths.
      If you are building your own startup with just 1 or 2 developers, and you are not building into an existing architecture then a monolith will always be quicker. It is a case of not solving for problems you are not even sure you will have.

  • @kimberlyjacobsen4148
    @kimberlyjacobsen4148 5 месяцев назад

    No changes to Email service ? ?
    After changes to Azure and Outlook we now need To use 2-factor Auth..
    thus Breaking the SMTP login.
    Add new Endpoints for MS and a Gui so we can authorize the Token. blah blah
    Point .. NO microservice is Imune to changes

    • @alexhyettdev
      @alexhyettdev  5 месяцев назад +1

      Very true. You would hope something as simple as email would be immune but very much depends on the provider. I have a few very simple Lambda functions that haven't touched in 2 years, however I am now forced to update them as the version of node they are running on will not be support soon.

  • @giorgikhachidze64
    @giorgikhachidze64 21 день назад

    Service mesh wasn't explained clearly at all. Too vague.

  • @jonny.rubber
    @jonny.rubber 2 месяца назад

    I feel the ping is unaccairy