I am working on a 3-tier architecture diagram for an e-commerce mobile application, mainly an Android application.
Since I come from a strong technical background with little to no experience in design or documentation, I am not sure if the diagram and explanation includes all that it should and if it is structured properly with components positioned in their right layer.
This is what I came up with after some knowledge gathering and research:
Presentation Layer:
Components – Screens,Forms, Buttons, Notifications etc..
Presentation Logic – UI specific for different screen sizes, form factors, language and region specific UI/Theme etc..
User Interactions – Text input, buttons click, permissions, enable GPS etc..
Business Layer:
Application Facade – Rest APIs, database APIs
Components – ViewModels that do the validation, helper classes to parse and cleanup the data
Entities – Data models like User, Product, Order, PaymentDetails etc..
Workflow – Data flow between the Entities, like adding a product to cart, checking out a cart etc..
Data Access Layer:
Local Database – SQLite to show data when the application is not connected to internet
Persistent Storage – File storage for any image caching, User preferences etc..
Server Database – Remote database and file system which is used by the Rest APIs
Common:
Security – Secure communication between the layers like database encryption, secure payment, HTTPS protocol etc..
Operational Management – Logging Analytics, crash reports etc..
Communication – Interfaces to update the UI, sync the database, send/receive notifications etc..
I would like to know if I am missing anything fundamental or if there are any structural flaws in the diagram. Thanks!