mitodl/open-discussions

Unified Open R&D: investigate approaches on how to implement strong module boundaries

rhysyngsun opened this issue · 0 comments

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?

  • What design strategies can we use that make error handling less complex and safe by default?