Is there an architecture pattern for "microservice as a plugin"?

by lGSMl   Last Updated October 10, 2019 18:05 PM

Long story short - I would like to make a web application, solely for self-education purposes, that should allow user to add additional functionalities via plugins - just like Jenkins - https://jenkins.io/doc/book/managing/plugins/ - which does it via extension points.

But beside that, at the same time I would like each of the plugin itself to be a self sustainable process on an arbitrary host, arbitrary technology stack, to be scalable and not be able to affect host with core systems anyhow, which already feels more like a microservice.

The main points to me are:

  • Plugins to be add/removed on fly via web UI;

  • Plugins to sit arbitrary on the same host as core, or any other
    host;

  • Plugins to be scalable both on I/O and performance;

  • Plugins to be written with arbitrary technology and only required to follow some basic contract to expose its functionality and available settings/controls to the core.

My brain was capable to produce only such a simple idea https://svgshare.com/s/FSo

So in the end of the day I have a feeling like I am trying to reinvent the wheel here, and there are ready solutions either in plugins or microservices architectures that cover these requirements - are there any really?



Related Questions


Updated February 26, 2018 02:05 AM

Updated June 17, 2019 11:05 AM

Updated September 27, 2017 18:05 PM