Предположим я хочу реализовать следующую архитектуру.

Как определить какой из слоёв реализовывать в первую очередь, во вторую? Что брать за начальную точку? Пользовательский интерфейс, бизнес-логику или данные. Можно ли слои параллельно реализовать? На что ориентироваться?