▲ | pizza 4 days ago | |
Any general tips on the construction of a great plugin system? I imagine most sort of follow the same principles | ||
▲ | formerly_proven 4 days ago | parent [-] | |
A lesson learned over and over again is that you can build amazing things with tightly coupled plugins, but once you have about three of them upgrading or changing anything gets kind of impossible - Hyrum's law. On the other hand, loosely coupled out-of-process plugins are a lot less flexible, but tend to work a lot better and more reliably, at the cost of more up-front engineering and overall investment. Assuming that what they can do is sufficient to work. Consider that e.g. kubernetes has basically just one actual core component (the API server) and everything else is loosely-coupled plugins. Alternatively, consider any of the projects stuck for 15 years on Python 2 because that's what their plugin system was in 2009. These are two points on a spectrum. |