Я делаю как бы "микросервисы внутри" (черные ящики) - модули с несколькими публичными методами, которые должны давать гарантированный результат. А уж внутри черного ящика может быть любое месево, главное оно не влияет на проект. Так же любой черный ящик может быть переписан с нуля не затронув остальные части проекта.
Любой черный ящик можно будет превратить в реальный микросервис, так же не затронув остальной проект.
Тут я для себя сделал небольшой свод правил, хотя он относится к синхронному коду (стилю), а у вас js, тут со старта сложность повышается. Бизнес логику писать в асинхроне не желательно.