4. Hidden functionality

Separately, at the stage of technical design, we have to make a note of the background (hidden) functionality, such as the mechanisms of working with database, the cache, the Push-notification handler, background synchronization or the cart control service. This functionality must not slip away at the beginning of the work, so it's better to describe it separately.

It's up to you to decide in what form to describe it all, but this doesn't prevent us from specifying the names of the background services (they implement the necessary functionality), which we will use in the future in the code. For example:

BL\Services\CartService Background Singleton-service for cart synchronization. Launches when the application starts. It should support work in a multi-threaded environment with a queue of messages about changes to the cart.

BL\Services\CatalogCacheService Implement a table storage container in the form of a Singleton-service for temporary caching of the list of goods and information about the seller between the screens.

DAL\DataServices\SyncDataService It implements the mechanisms of stage-by-stage data synchronization. Must support work in a limited environment of native background launching.