Lesson 160 - Microkernel Architecture

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2024
  • The Microkernel Architecture style has been around for a very long time, and actually has its roots in operating systems. This architecture style leverages plug-ins, hence its alternative name, the Plug-in architecture style. In this lesson I describe the microkernel architecture, talk about its strengths and weaknesses, and explain when you should use it, and when you should avoid using it.
    Reference Links:
    Software Architecture Monday: bit.ly/3dadEe3
    Fundamentals of Software Architecture: amzn.to/3rgFLjY
    Software Architecture: The Hard Parts: amzn.to/3BjMMF2

ความคิดเห็น • 29

  • @olegnovitskiy1098
    @olegnovitskiy1098 ปีที่แล้ว +3

    Thanks Mark for your brilliant explanation the Microkernel Architecture!

  • @chitthiaayeehai
    @chitthiaayeehai ปีที่แล้ว +2

    Is Microkernel similar Or Same as Hexagonal architecture ?

    • @markrichards5014
      @markrichards5014  ปีที่แล้ว +2

      Yes, they are very similar in that the plug-ins can act as the adapters to various ports, and the core system becomes the application domain.

  • @techw4y
    @techw4y ปีที่แล้ว +1

    Hi Mark, I like your videos a lot. Can you do a session comparing event-driven and event-streaming architectures?

    • @markrichards5014
      @markrichards5014  ปีที่แล้ว

      Sure! I'll schedule that after our architecture styles review is over.

  • @herobrinesky3348
    @herobrinesky3348 5 หลายเดือนก่อน

    Thanks for your lesson. I'm going to use this style to build my project and I have a question: "Can I allow the Plug-in component maybe access the data from Core System like the models, daos, ..."? Sorry for my bad English

    • @markrichards5014
      @markrichards5014  5 หลายเดือนก่อน +1

      You could, but it would be better to have the core system access the database and pass that information onto the plug-ins. That way, if there are database schema changes, it won't affect the plug-ins, making them more stand-alone.

  • @ren.oooooo
    @ren.oooooo ปีที่แล้ว

    Dependency injection goes well with this architecture as it allows to push configuration to the plugins
    btw, do you have an official publisher/distributor in India? I suspect that the books available on amazon India is a fake (low-quality). Maybe I'll buy it when i travel abroad

    • @markrichards5014
      @markrichards5014  ปีที่แล้ว +1

      Yes, O'Reilly does use an India distributor SPD. See www.amazon.in/Fundamentals-Software-Architecture-Engineering-Paperback/dp/9352139623/

  • @pankajsinghv
    @pankajsinghv ปีที่แล้ว +2

    Awesome articulation… thanks a lot

  • @محمودمصطفى-ع6ج3ع
    @محمودمصطفى-ع6ج3ع 9 หลายเดือนก่อน

    I need in arabic

  • @sant4398
    @sant4398 ปีที่แล้ว +2

    Thank you for the lesson!

  • @gabrielg9592
    @gabrielg9592 ปีที่แล้ว +1

    Great content as always, thanks Mark! May I ask what are the particularities, the pros, cons and tradeoffs, as well as your overall thoughts about a "distributed Microkernel"? I mean the plugins being outside of the core system deployment, scaling separatedly and all that, but they still work as "addons" to the core system that stays the same. Is that even a thing?

    • @markrichards5014
      @markrichards5014  ปีที่แล้ว +1

      Sure! With distributed it eases testing and deployment of plugins and can resolve bottlenecks, but keep in mind every request still has to go through the core system, so you might not realize any scalability or fault tolerance benefit.

  • @realkoryheard
    @realkoryheard 18 วันที่ผ่านมา

    I strongly disagree with the examples here. If you look at any microkernel operating system while modularity and plugins are present they are not what defines the architecture. Microkernel architecture is defined by message passing as the means to communicate. QNX, L4 and XNU all use message passing as the form of communication, process control and interprocess communication.
    Linux is a monolith but enables plugins through kernel modules.

    • @markrichards5014
      @markrichards5014  17 วันที่ผ่านมา

      Thanks for your comment. In our Head-First Software Architecture book we define this as the level of "Microkernality" in a system based on the functionality of what the core system does. In a lot of cases, as you are suggesting here, systems are comprised of hybrids - aspects of microkernel combined with other styles (such as a modular monolith with plug-ins). You can find a lot of variableness of this architecture style in the wild - my examples are purely to illustrate the overall shaoe of this architectural style.

  • @MrKZee
    @MrKZee ปีที่แล้ว +1

    I think I figured out what makes that low frequency rumble sound - you XDD
    it happens when you start drawing something, so I presume your mic stand doesn't have shock absorbent capabilities and "boom" happens when you put your hands onto the table. )))
    Don't rob me the wrong way - I have a musical background, it's a nightmare for me at times.
    Can't wait to see lessons on distributed architectures, especially because there' a lot of hype about them and some companies fall victims to that hype(

    • @markrichards5014
      @markrichards5014  ปีที่แล้ว +1

      Thanks Kray. I'll pay more attention to this in the future.

  • @alexsharma
    @alexsharma ปีที่แล้ว +1

    Thanks Mark, for explaining Microkernel architecture with great examples.
    I think we can mix this architecture with microservices , atleast for plugins. Where each plugin will be an independent microservice.
    Whats your thoughts on this?

    • @markrichards5014
      @markrichards5014  ปีที่แล้ว

      Absolutely Alex! A microservice can be implemented using the microkernel architecture, as could a user interface. Now we are seeing how one style can be embedded in another style. Good observation!

    • @alexsharma
      @alexsharma ปีที่แล้ว

      @@markrichards5014 thanks for your encouraging words !!!

  • @wreckball2315
    @wreckball2315 ปีที่แล้ว

    I would like to think Payment systems could be one good use case of microkernels, where different payment modes (paypal, card, wallet, netbanking, upi) can be plugins.

    • @markrichards5014
      @markrichards5014  ปีที่แล้ว

      Agreed - good observation about the use of the Microkernel architecture.

  • @husynmansoor
    @husynmansoor ปีที่แล้ว

    Thanks Mark! Always a pleasure learning something new from these video lectures.
    I want to say is Wordpress a good example of Microkernel Architecture? Core of Wordpress remains the same while the functionality is changed according to which plugin you use with it.

    • @markrichards5014
      @markrichards5014  ปีที่แล้ว +1

      Yes! Any system , product, or tool that allows you to add plug-ins or add-ons is a form of the microkernel architecture.

  • @HemalVarambhia
    @HemalVarambhia ปีที่แล้ว

    In the microkernal architecture it would appear that the core system has a contract with the plugins. Is that right? If so, contract tests may come into play, I suppose.

    • @markrichards5014
      @markrichards5014  ปีที่แล้ว +1

      Indeed! Remote or not, there is a plug-in contract. I like to keep the contracts consistent so as to minimize changes to the core system.

  • @janghyukboo6113
    @janghyukboo6113 3 หลายเดือนก่อน

    Thank you for the lesson!