Unified Open R&D: investigate approaches on how to implement strong module boundaries
rhysyngsun opened this issue · 0 comments
rhysyngsun commented
See also: https://docs.google.com/document/d/1pHTqQ3nWT348RyTLcCdUH9gHjLU7erKfqqa2oXiz_qY/edit
We've had conversations around utilizing a plugin system to achieve decoupling of various pieces of functionality. There's a few things we need to follow up on that will give us a clearer picture of how this will look in practice:
-
Plugins work great for side effects, but sometimes you need to just make a function call (e.g. to fetch some data). What is a good set of guidelines on how to build well-defined module boundaries for when an internal API call needs to be made that doesn't fit into the plugin strategy?
- Can some of this be accomplished with a linter? https://github.com/seddonym/import-linter
-
What design strategies can we use that make error handling less complex and safe by default?
- Circuit breaker pattern?
- How can we augment
pluggy
to give error boundaries by default?