@startuml

component "Services" {
    [user-service]
    [account-service]
    [notification-service]
    [transaction-service]
    [auth-server]

    [transaction-service] ---> [user-service]
    [transaction-service] ---> [account-service]
    [transaction-service] ---> [notification-service]
    [notification-service] ---> [user-service]
    [user-service] <-->  [auth-server]
    [account-service]  <-->  [auth-server]
    [notification-service]  <-->  [auth-server]
    [transaction-service]  <-->  [auth-server]
}

database "PostgreSQL" {
    frame "user-data schema" {
        [user data]
    }
    [user-service] .. [user data]
    frame "account-data schema" {
        [account data]
    }
    [account-service] .. [account data]
    frame "transaction-data schema" {
        [transaction data]
    }
    [transaction-service] .. [transaction data]
    frame "notification-data schema" {
        [notification data]
    }
    [notification-service] .. [notification data]
}


@enduml