Как организовать архитектуру SPA приложения на нативном javascript?
Если причина - действительно написание высокопроизводительной системы, а не в обучающих целях, то тогда, прежде чем писать свое, нужно ознакомиться до мелочей, как работают под капотом популярные фреймворки: Angular, React, Vue2, Aurelia. Скорее всего, придется написать свою реализацию virtual dom. Она точно будет быстрее существующих? 
Так же советую ознакомиться с фреймворками, которые работают поверх веб компонентов: Polymer, Stencil, Skatejs - это будущее, имхо
Да архитектура не сложная.
Обработать запрос на сервере - передать роутеру - отдать клиенту данные для рендеринга.
Или что интересует конкретно? Вопросов может быть очень много, я с этим сталкивался сам. Например, как эмулировать страницы для ПС, для меня оказался наиболее сложным.