introduce

Mini-Star is a microkernel (plug-in) front-end library designed to make it easier and painless to build (or retrofit) a production-usable microkernel (plug-in) architecture system.

What is a microkernel

It consists of a group of software programs that provide and implement the mechanisms and functions required by an operating system, as minimized as possible. These are the most basic mechanisms, including the underlying address space management, thread management, and interprocess communication.

Design concept

Separate the implementation of the system from the basic operating rules of the system. It does this by modularizing core functions and dividing them into separate processes that run separately, called services. All server processes run in different address Spaces.

Keeping services separate reduces coupling between systems, makes it easier to implement and debug, and increases portability. It can avoid the failure of a single component, causing the entire system to crash, the kernel only needs to restart this component, not affect the other server function, so that the system stability increased. At the same time, the business function can replace or add some service processes as needed to make the function more flexible.

In terms of code volume, core systems generally use less code than integrated systems because of simplified functionality. Less code means fewer hidden program bugs.

Ministar’s core design philosophy

  • simple

Since both the Ministar and the Ministar projects are stack-independent, the Ministar is just a jQuery-like plugin library to the user. You need to load the Ministar/Runtime plugins and shared dependencies. Then build the Ministar/Bundler plug-in project to make the system more plugin-like.

  • Decoupling/technology stack independent

Micro kernel core target and micro front end, is to apply stones can disassemble into several autonomous application of loose coupling, and ministar are all designed with this principle, in addition to the need to share the public dependence and base project provides the ability of plug-in project has its own context, rely on management, and mutual communication mechanism, This ensures that the plug-in can be developed independently. It also guarantees the ability to share types with other dependencies.

features

  • Out of the box, you can customize it.
  • Technology stack is independent, any application of the technology stack can beAccess/Access, whether the React/Vue/presents/Svelte/JQuery or other framework.
  • Shared dependencies, the same dependencies need to be loaded only once, reducing unnecessary volume and packaging time
  • Dependency calls between plug-ins are made as if they were native components
  • Based on theRollupPack it up, now!
  • Born for the modern front end. In the past, we exposed methods through Windows, now all of our code needs to be compiled into modules, and the exposure comes through modules
  • Topology depends on sorting to prevent timing problems.

The document

  • The official documentation
  • Github
  • Application of Microkernel Architecture in Large Front-end Systems (Microfront-end)