По структуре будет фронт, бек для фронта (отдает данные и модель компонентной архитектуры фронта) и через редис и ЛРУ кеш еще будет один страпи для работы с базой в которой модель данных
Я так понял проблема ООП в жс это загрязнение прототипа и в общем прототипное наследование. Но есть паттерн OLOO, в котором используется объектная композиция вместо наследования и не используется конструктор, вместо него функция инициализации