Deciding how components of a program depend on each other and communicate with one another is what design is all about. Designing an Aurelia application is no different. However, in order to make enlightened design choices, you need to know what techniques the framework offers.
There are typically four ways to make components communicate in an Aurelia application: using data binding, using remote services, using shared services, and using events.
Up to now, our application has mostly relied on data binding and on a remote service, our backend. The route components don't directly communicate with each other, but do so via the backend. Each route component retrieves the data it needs from the backend each time it is activated, ...