Closed Arielpetit closed 3 weeks ago
The objective of this task is to document the decision taken on the architecture of the project. we need to understand why:
there is a fe-be secure layer in the app why we're building an event bus for communication the reason for abstraction of the fe components from fe-be components, how to define interfaces for communication between fe components and fe-be components
FE-BE Secure Layer: The decision to include a secure layer between the front-end (FE) and back-end (BE) is primarily driven by the need to protect data integrity and privacy. In a mobile app, sensitive information such as user credentials, personal data, and transaction details are often exchanged between the client and server. The secure layer uses encryption to ensure that this data cannot be intercepted or tampered with during transmission. This is crucial for maintaining user trust and for compliance with data protection regulations.
Event Bus for Communication: The use of an event bus is a common pattern in modern app development, particularly in apps that follow a microservices architecture. The event bus allows different components of the app to publish and subscribe to events. This means that a component can react to events that it is interested in, without needing to know which other component produced the event. This decoupling of components leads to a codebase that is easier to maintain and evolve over time.
Abstraction of FE Components from FE-BE Components: The decision to abstract the FE components from the FE-BE components is a reflection of the Single Responsibility Principle (SRP). By ensuring that the FE components are only concerned with presentation logic, and the BE components with business logic, we increase the maintainability and testability of the code. This separation of concerns also makes it easier to work on the FE and BE independently, which can be a big advantage in a team development environment.
Defining Interfaces for Communication between FE and BE: Defining clear interfaces for communication between the FE and BE is crucial for the robustness of the app. These interfaces, often defined in an API (Application Programming Interface), ensure that both the FE and BE agree on the format of the data to be exchanged. This reduces the likelihood of errors and makes the system easier to debug.
The objective of this document is to document the architectural decisions made for the project, with a focus on security and communication between components.
Documenting these architectural decisions provides insight into the rationale behind the design choices, guiding future development efforts and ensuring alignment with project goals and requirements. This includes a strong emphasis on security at all levels of the application, from the front-end to the back-end and the database, as well as efficient communication between components.
Description:
The objective of this task is to ensure the Webank-UserApp architecture is clearly documented to guide the development process and address key technical decisions, such as:
Requirements:
Acceptance Criteria:
Estimate: 5