Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Microkernel architecture #1086

Open
iluwatar opened this issue Nov 13, 2019 · 3 comments
Open

Microkernel architecture #1086

iluwatar opened this issue Nov 13, 2019 · 3 comments

Comments

@iluwatar
Copy link
Owner

iluwatar commented Nov 13, 2019

Description

The Microkernel Architecture design pattern, also known as the plug-in architecture, is ideal for product-based applications that need to extend their core functionalities through plug-ins. This pattern is characterized by a minimal core system that contains the essential functionality of the application, and additional features or customizations are provided through independent plug-in modules. This approach promotes extensibility, flexibility, and maintainability of the software by isolating the core system from the custom processing logic.

Main Elements:

  1. Core System: The foundational part of the application containing the minimal functionality required to run the system.
  2. Plug-in Modules: Independent components that add specialized processing or additional features to the core system. They should remain isolated from each other to avoid dependencies.
  3. Plug-in Registry: A system that manages the available plug-in modules, providing information such as their names, data contracts, and access protocols.

References

  1. Priyal Walpita's article on Microkernel Architecture: Software Architecture Patterns: Microkernel Architecture
  2. "Software Architecture Patterns" by Mark Richards: Chapter 3 (Microkernel Architecture)

Acceptance Criteria

  1. Core System Implementation: Develop a core system with essential functionalities and a mechanism to interact with plug-in modules.
  2. Plug-in Module Integration: Create at least two plug-in modules that demonstrate the extensibility of the core system by providing additional features.
  3. Plug-in Registry: Implement a plug-in registry to manage the available plug-in modules, ensuring they can be dynamically discovered and loaded by the core system.
@RudolfBun
Copy link

@iluwatar Can I work on this issue?

@iluwatar
Copy link
Owner Author

Yes @RudolfBun go ahead

@iluwatar
Copy link
Owner Author

Assistance is needed to resolve this issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

2 participants