Well, it depends. I usually design my architecture based on Clean Architecture. There are two ways to isolate the business logic, dependency injection and inversion of control. In Javascript, I have no interface to implement the IoC, so as you can see, I used to leverage dependency injections. But I have to say, that’s my preference, and that is currently the best practice for our organization. Not everyone has to buy in this approach; you may have a better way for your organization as well.