From 06661acf1067d87ec0cc8d919bdcafebba9a6c72 Mon Sep 17 00:00:00 2001 From: Lolo Date: Mon, 4 Aug 2025 14:10:09 +0200 Subject: [PATCH] readme --- README.md | 33 ++++++++++++++++++++++++++- docs/architecturalComponentLayout.svg | 2 +- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7266161..67ebd3e 100644 --- a/README.md +++ b/README.md @@ -112,10 +112,29 @@ As a cloud-native approach, we will take blob storage as a service-independent m - __IBM Cloud Object Storage:__ Enterprise-grade, scalable object storage. - __MinIO:__ Self-hosted, S3-compatible object storage solution for on-premises or private cloud. -#### Arquitectura del sistema +#### System Architecture ![Diagram of the conections between the described componentes. Frontend connected to BFF, BFF connected to BlobProvider, BFF connected to Backend, Backend connected to DataProvider and Backend connected to Identity provider.](docs/architecturalComponentLayout.svg) +At system level, since identity and data providers are not controlled parts, there are three main components: + +- Frontend +- BFF +- Backend + +Frontend will speak ONLY with BFF via REST comands. Only sensible data will be encrypted via AES. +Frontend will GET lazily all the images for galleries. + +BFF will redirect GET image requests to configured CDN or will serve them if no CDN is configured. +BFF will cache repeated and critical requests. +BFF will redirect to Backend in case of user creation, login or update; selling activity as booking or buying; image creation, edition or delete. + +Backend will contact Identity Providers such as Google or Instagram at login time. +Backend will generate and validate login tokens. +Backend will create, retrieve, edit and delete user and image data. + +Since frontend will be device dependant at a future, BFF will give flexibility for identifying client users. + --- ### Glossary @@ -147,3 +166,15 @@ __EntityFramework:__ An object-relational mapper (ORM) for .NET, used to interac __Blob Storage:__ A service for storing large amounts of unstructured data, such as images, videos, and documents. __Plug-and-play architecture:__ A design approach that allows components to be easily added, removed, or replaced without affecting the rest of the system. + +__CDN (Content Delivery Network):__ A network of servers distributed geographically to deliver content more efficiently to users based on their location. + +__AES (Advanced Encryption Standard):__ A symmetric encryption algorithm widely used for securing sensitive data. + +__REST (Representational State Transfer):__ An architectural style for designing networked applications, often used for APIs. + +__DAPR (Distributed Application Runtime):__ A runtime that simplifies building distributed systems by providing APIs for common tasks like state management and pub/sub messaging. + +__Edge Computing:__ A distributed computing paradigm that brings computation and data storage closer to the location where it is needed to improve response times and save bandwidth. + +__Parallel Processing:__ A method of processing data in which multiple processors execute tasks simultaneously to increase efficiency and performance. diff --git a/docs/architecturalComponentLayout.svg b/docs/architecturalComponentLayout.svg index 81b0056..930b57f 100644 --- a/docs/architecturalComponentLayout.svg +++ b/docs/architecturalComponentLayout.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file