Skip to content

Latest commit

 

History

History
108 lines (64 loc) · 6.93 KB

File metadata and controls

108 lines (64 loc) · 6.93 KB
graph LR
    API_Gateway_Router["API Gateway/Router"]
    User_Management_Service["User Management Service"]
    CV_Processing_Service["CV Processing Service"]
    Payment_Processing_Service["Payment Processing Service"]
    Asynchronous_Task_Queue_Worker["Asynchronous Task Queue/Worker"]
    Database_Service["Database Service"]
    Caching_Service["Caching Service"]
    Unclassified["Unclassified"]
    API_Gateway_Router -- "manages user sessions via" --> Caching_Service
    User_Management_Service -- "stores and retrieves user data from" --> Database_Service
    User_Management_Service -- "caches user entities in" --> Caching_Service
    CV_Processing_Service -- "stores and retrieves CV-related data from" --> Database_Service
    CV_Processing_Service -- "caches CV entities in" --> Caching_Service
    Payment_Processing_Service -- "updates records in" --> Database_Service
    Asynchronous_Task_Queue_Worker -- "stores task metadata and results in" --> Database_Service
    Asynchronous_Task_Queue_Worker -- "uses to store temporary results and states" --> Caching_Service
    User_Management_Service -- "interacts with" --> Payment_Processing_Service
    CV_Processing_Service -- "submits tasks to" --> Asynchronous_Task_Queue_Worker
    API_Gateway_Router -- "routes requests to" --> User_Management_Service
    API_Gateway_Router -- "routes requests to" --> CV_Processing_Service
    API_Gateway_Router -- "routes requests to" --> Payment_Processing_Service
    click API_Gateway_Router href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/cvimprover-api/API_Gateway_Router.md" "Details"
Loading

CodeBoardingDemoContact

Details

This system is designed around a set of interconnected services to provide a robust and scalable platform. The API Gateway/Router acts as the central entry point, directing incoming client requests to the appropriate backend services and managing user sessions via the Caching Service. The User Management Service handles all user-centric operations, including authentication, profile management, and subscription details, persisting this data in the Database Service and leveraging the Caching Service for performance. The CV Processing Service manages the entire CV lifecycle, from upload to analysis, storing relevant data in the Database Service and offloading intensive tasks to the Asynchronous Task Queue/Worker. Payments and subscriptions are managed by the Payment Processing Service, which updates records in the Database Service. The Asynchronous Task Queue/Worker is crucial for handling background tasks, utilizing both the Database Service for task metadata and the Caching Service for temporary results. At the core, the Database Service provides persistent storage for all critical application data, while the Caching Service significantly boosts performance by storing frequently accessed data and managing session states. This architecture ensures a clear separation of concerns, scalability, and efficient data handling.

API Gateway/Router [Expand]

Serves as the primary entry point for all client requests, routing them to the appropriate internal services. It also manages user sessions, often leveraging the Caching Service for session data.

Related Classes/Methods:

User Management Service

Responsible for all user-related functionalities, including registration, authentication, profile management, and subscription handling. It interacts with the Database Service to store user data and the Caching Service for frequently accessed user entities.

Related Classes/Methods:

CV Processing Service

Manages the lifecycle of CVs, from upload and parsing to analysis and storage. It stores CV-related data in the Database Service and can cache processed CV entities for quicker retrieval.

Related Classes/Methods:

Payment Processing Service

Handles all payment-related operations, including subscription management, transaction processing, and billing. It updates payment records and subscription statuses in the Database Service.

Related Classes/Methods:

Asynchronous Task Queue/Worker

Executes background and long-running tasks, such as complex CV processing, report generation, or email notifications, without blocking the main application flow. It stores task metadata and results in the Database Service and uses the Caching Service for temporary states and results.

Related Classes/Methods:

Database Service

Provides robust, persistent storage for all application data using PostgreSQL. This includes critical business data such as user profiles, CV details, subscription information, and metadata for asynchronous tasks. It ensures data integrity and transactional consistency.

Related Classes/Methods:

Caching Service

Enhances application performance and responsiveness by providing an in-memory cache using Redis. It stores frequently accessed data, temporary results from computationally intensive tasks, and manages user sessions, thereby reducing the load on the primary database and external services.

Related Classes/Methods:

  • django.core.cache
  • django.contrib.sessions

Unclassified

Component for all unclassified files and utility functions (Utility functions/External Libraries/Dependencies)

Related Classes/Methods: None