Design a general plugin architecture
Should we design a general plugin architecture?
Considered Alternatives
- Design a general plugin architecture
- Every plugin has its own architecture
Decision Outcome
- Chosen Alternative: Design a general plugin architecture
- Designing a general plugin architecture allows us to extract similarities to a abstract level.
Pros and Cons of the Alternatives
Design a general plugin architecture
+
every plugin implements the same interface+
similarities can be extracted to a more abstract level+
reduction of information the plugins need, for example file access could be handled in the abstract layer-
there may be things that are not required by every plugin
Every plugin has its own architecture
+
no need for discussion with other plugin teams-
every plugin does what it wants-
"duplicated code", same things are implemented the same in every plugin-
How to check whether every plugin supports the given csar?