Introducing Cloud Bank

Mark Nelson
Oracle Developers
Published in
3 min readApr 7, 2023

As you may know, I am working on building a Backend for Spring Boot which includes Oracle Database and a Kubernetes cluster with several Spring-related services pre-installed and pre-configured, including service registry, config server, workflow and transaction management, to name a few. It can be deployed on Oracle’s Cloud, or Azure, on-premises or on your laptop (in Minikube).

Of course, the main purpose of the backend is to run Spring Boot applications, and so naturally, we wanted to have a sample application to show people how to use the backend platform — and that sample application is Cloud Bank!

As I am writing this, in April 2023, our current version of the Cloud Bank sample application is v2, but we are constantly evolving the sample to make sure it showcases both the features of the backend platform, and it demonstrates how to apply best practices for successful microservices applications.

Cloud Bank includes a number of Spring Boot microservices for managing customers, accounts, transactions in those accounts, payments and also checking credit scores. It demonstrates the Database per Service pattern, in this case by using schemas and database security to isolate each service’s data, but of course we could just as easily use Oracle Database’s “pluggable database” containers — which are just like application containers — they provide isolation, portability and protection from noisy neighbors.

Cloud Bank also includes a mobile app written in Flutter that uses those Spring Boot microservices and the mobile backend services provided by Parse Platform, which is an optional extra that can be included in the backend when you install it.

The full source code for the Cloud Bank sample is available in GitHub. We also have a “Live Lab” (which is basically an on-demand self-paced workshop) that walks you through building both the account and payment/transfer microservices from scratch. The Live Lab also includes extending the Flutter mobile app to add a new “Cloud Cash” feature that allows users to send money to anyone instantly. This feature uses both the Spring Boot microservices and the mobile (Parse) backend.

This version of Cloud Bank uses Spring Boot 2.7.9. We are planning to move up to Spring Boot 3 in our next update and to add new features to the sample including asynchronous messaging/events for inter-service communication to demonstrate loose coupling, the Transactional Outbox pattern and event mesh.

The payment/transfer service in Cloud Bank demonstrates how to use Long Running Actions to implement the Saga pattern. The backend includes Oracle Transaction Manager for Microservices Free which supports XA, LRA and TCC patterns to manage data consistency across microservices and their databases.

Do you use Spring Boot to build microservices applications? We’d love to hear your thoughts on the Backend for Spring Boot and the Cloud Bank sample application. You can email us at obaas_ww@oracle.com or use this QR code to fill out a quick survey and we’d be happy to get in touch with you.

--

--