Router: Query String Handler Service
A service is required to handle urls that contain a modern query string defining the state of the application. Whenever the url is changed and has a query string, this service should dispatch the appropriate actions, preferably via facades, to update state accordingly.
This service should make every effort to identify TRUE changes to the url, and avoid dispatching actions if the current url has not changed from the prior in any meaningful way that would affect state.
This could be achieved by feeding the query string of the url through an RxJs Subject, which is in turn observed by this same service. This observation should utilize one of the distinct until changed operators to ensure that actions are only dispatched when something has indeed changed. It may also be prudent to include a debounce or time delay operator to ensure that state is not updated too frequently.