So we started to use ngrx for state handling and first results look very promising. The central state handling concept leads to cleaner code within the application and time travel is really great for debugging. More on that topic soon.
We also had a look at the presentational and container components concept which helps to reduce complexity of pure presentational components. Overall our architecture has evolved over time as we kept learning and getting more and more familiar with the new technology and it is now in pretty good shape.
As far as deployment is concerned we evaluated different options and decided for a loose coupling of server and storefront and a deployment independent from our existing web servers. This allows us to use different web servers like nginx and also to scale the storefront independently from the commerce server, providing more flexibility for high performance and load scenarios. We also integrated node.js for server-side rendering via Angular Universal and now have a complete setup in place.
Speaking of server-side rendering, we also updated our project to Angular 5 which has some nice new feature, state transfer. So the payload of all REST calls that are made by Angular universal to create server-side rendered pages can be transferred from server to browser. This helps the browser to pick up rendering responsibilities after the initial page load without requiring to make these REST calls again.
So we made progress in a lot of different areas and the pieces of the puzzle are starting to fall in place. Once we have finalized our architectural changes we are going to present the project in a customer and partner webinar, most probably at the end of February/beginning of March.
That’s all for now, so stay tuned for our webinar which we will announce via customer and partner newsletters.