Documentation
Example bank design

POST http://localhost:8080/api/v1/account/{accountId} (opens in a new tab)

{
    accountType,
    balanceCurrencyCode
}

POST http://localhost:8080/api/v1/account/{accountId}/debit (opens in a new tab)

{
    amount,
    currencyCode
}

POST http://localhost:8080/api/v1/account/{accountId}/credit (opens in a new tab)

{
    amount,
    currencyCode
}

POST http://localhost:8081/api/v1/fees/transaction (opens in a new tab)

{
    transactionType,
    amount,
    currencyCode
}

POST http://localhost:8082/api/v1/currency/{fromCurrencyCode}/convert (opens in a new tab)

{
    amount,
    toCurrencyCode
}
Consumer/DownstreamProducer/Upstream
POST http://localhost:8080/api/v1/account/{accountId} (opens in a new tab)
POST http://localhost:8080/api/v1/account/{accountId}/debit (opens in a new tab)POST http://localhost:8081/api/v1/fees/transaction (opens in a new tab)
POST http://localhost:8080/api/v1/account/{accountId}/debit (opens in a new tab)POST http://localhost:8082/api/v1/currency/{fromCurrencyCode}/convert (opens in a new tab)
POST http://localhost:8080/api/v1/account/{accountId}/credit (opens in a new tab)POST http://localhost:8081/api/v1/fees/transaction (opens in a new tab)
POST http://localhost:8080/api/v1/account/{accountId}/credit (opens in a new tab)POST http://localhost:8082/api/v1/currency/{fromCurrencyCode}/convert (opens in a new tab)
POST http://localhost:8081/api/v1/fees/transaction (opens in a new tab)
POST http://localhost:8082/api/v1/currency/{fromCurrencyCode}/convert (opens in a new tab)