Skip to content

System Architecture

Overview

The Gustaffo Reservations Application follows a microservices architecture pattern to provide a scalable, maintainable, and resilient system for hotel reservation management. The architecture is designed to handle high traffic volumes and integrate with multiple external systems.

Architecture Diagram

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
flowchart TB
    subgraph "Frontend"
        UI[Web UI]
        Mobile[Mobile App]
    end

    subgraph "API Gateway"
        Gateway[API Gateway/Load Balancer]
    end

    subgraph "Core Services"
        Reservation[Reservation Service]
        Payment[Payment Service]
        Offer[Offer Service]
        Notification[Notification Service]
        User[User Service]
    end

    subgraph "Integration Layer"
        PMS[PMS Integration]
        Payment_Gateway[Payment Gateway Integration]
        OTA[OTA Integration]
    end

    subgraph "Data Layer"
        DB[(Primary Database)]
        Cache[(Cache)]
        Queue[(Message Queue)]
    end

    UI --> Gateway
    Mobile --> Gateway

    Gateway --> Reservation
    Gateway --> Payment
    Gateway --> Offer
    Gateway --> Notification
    Gateway --> User

    Reservation --> DB
    Payment --> DB
    Offer --> DB
    Notification --> DB
    User --> DB

    Reservation --> Cache
    Payment --> Cache
    Offer --> Cache

    Reservation --> Queue
    Payment --> Queue
    Notification --> Queue

    Reservation --> PMS
    Payment --> Payment_Gateway
    Offer --> OTA

    PMS --> External_PMS[Apaleo PMS]
    Payment_Gateway --> External_Payment[Payment Providers]
    OTA --> External_OTA[OTA Channels]

Key Components

API Gateway

Serves as the entry point for all client applications, providing:

  • Request routing
  • Load balancing
  • Authentication and authorization
  • Rate limiting
  • Request/response transformation

Core Services

Reservation Service

Manages the entire lifecycle of reservations, including:

  • Reservation creation and modification
  • Reservation status management
  • Availability checking
  • Room inventory management

Payment Service

Handles all payment-related operations:

  • Payment processing
  • Payment status tracking
  • Refund processing
  • Integration with payment gateways

Offer Service

Manages hotel offers and pricing:

  • Rate plan management
  • Special offer creation
  • Pricing rules and calculations
  • Discount management

Notification Service

Manages all communications with guests and hotels:

  • Email notifications
  • SMS notifications
  • Push notifications
  • Notification templates and localization

User Service

Manages user accounts and authentication:

  • User registration and profile management
  • Authentication and authorization
  • Role and permission management

Integration Layer

PMS Integration

Integrates with property management systems:

  • Apaleo PMS integration
  • Reservation synchronization
  • Room inventory synchronization
  • Payment posting

Payment Gateway Integration

Integrates with payment providers:

  • Credit card processing
  • Alternative payment methods
  • Payment authorization and capture
  • Refund processing

OTA Integration

Integrates with online travel agencies:

  • Channel management
  • Inventory and rate distribution
  • Booking retrieval

Data Layer

Primary Database

PostgreSQL database for persistent storage of application data.

Cache

Redis cache for high-performance data access and session management.

Message Queue

RabbitMQ for asynchronous communication between services and event-driven architecture.

Communication Patterns

Synchronous Communication

  • REST APIs for direct service-to-service communication
  • GraphQL for complex data queries

Asynchronous Communication

  • Message-based communication for event processing
  • Publish-subscribe pattern for event notifications
  • Event sourcing for maintaining system state

Deployment Architecture

The system is deployed on Kubernetes, providing:

  • Container orchestration
  • Automatic scaling
  • Service discovery
  • Health monitoring
  • Rolling updates

Security Architecture

Security is implemented at multiple levels:

  • API Gateway authentication and authorization
  • Service-to-service authentication
  • Data encryption in transit and at rest
  • Secure storage of sensitive information
  • Regular security audits and vulnerability scanning

Resilience and Fault Tolerance

The system is designed to be resilient:

  • Service isolation prevents cascading failures
  • Circuit breakers prevent overloading failing services
  • Retry mechanisms handle transient failures
  • Fallback mechanisms provide degraded functionality when services are unavailable
  • Redundancy eliminates single points of failure
Back to top