Overridable Business Logic
All core business logic (above and beyond simple "glue" code) should use interfaces/protocols, with built-in defaults, to support customization or replacement of functionality without requiring the codebase to be forked.
All core business logic (above and beyond simple "glue" code) should use interfaces/protocols, with built-in defaults, to support customization or replacement of functionality without requiring the codebase to be forked.