Abstract
Core banking systems lie in the heart of any bank today as they embrace all services that are provided by banks to carry out their day-to-day business. Examples of these services can be customer management, transaction processing, payment processing, auditing, and statistical reporting. Software infrastructure in such core banking systems was built based on the monolith system architecture, which was a common practice in building distributed software systems earlier before the advent of cloud computing. Monolith architecture incorporates all core banking services into a single, fully integrated piece of software where the codebase can become overwhelmingly complex and incomprehensible over time. As a consequence, it becomes rather challenging to make bug fixes and feature additions in monolith core banking systems and serious maintenance costs can arise to adapt to new technologies. Microservices Architecture (MSA) has emerged in line with the developments in virtualization technologies and cloud computing (e.g., Kubernetes, Containerization) as a software engineering practice to overcome the problems that can be encountered in monolith software. In this paper, a system architecture for an MSA-based core banking system was proposed by particularly taking performance efficiency into account. The justification of this architecture was made through a real-world case study in a commercial bank having a large-scale legacy core banking monolith. Load tests were applied to both this legacy core banking monolith and the new MSA-based banking system that reflects our architectural proposal and average request throughputs and response times were analyzed in both systems to demonstrate how better the proposed architecture performs in comparison to its monolith counterpart concerning performance-efficiency.
Similar content being viewed by others
References
Chen, R., Li, S., Li, Z.: From monolith to microservices: a dataflow-driven approach. In: 2017 24th Asia-Pacific Software Engineering Conference (APSEC), pp. 466–475 (2017). https://doi.org/10.1109/APSEC.2017.53
Richardson, C.: Microservices patterns, 1st edn. Manning Publications Co., Shelter Island (2019)
Fowler, M., Lewis, J.: Microservices - A definition of this new architectural term (2014). https://martinfowler.com/articles/microservices.html. Accessed March 2021
Fritzsch, J., Bogner, J., Zimmermann, A., Wagner, S.: From monolith to microservices: A classification of refactoring approaches. In: Bruel, J.M., Mazzara, M., Meyer, B. (eds.) Software engineering aspects of continuous development and new paradigms of software production and deployment. DEVOPS 2018. Lecture notes in computer science, vol. 11350. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-06019-0_10
4 Microservices examples: Amazon, Netflix, Uber, and Etsy. https://blog.dreamfactory.com/microservices-examples/ (n.d.). Accessed March 2021
Adopting microservices at Netflix: lessons for architectural design (n.d.). https://www.nginx.com/blog/microservices-at-netflix-architecturalbest-practices/. Accessed Jan 2021
Airbnb’s 10 takeaways from moving to microservices. https://www.gov.za/sites/default/files/gcis_document/201911/42812gen593.pdf (n.d.). Accessed March 2021
Core banking system, Gartner. https://www.gartner.com/en/information-technology/glossary/core-banking-systems (n.d.). Accessed March 2022
Song, I., Vong, J.: Affective core-banking services for microfinance. In: Lee, R. (ed.) Computer and information science. Studies in computational intelligence, vol. 493. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-319-00804-2_7
Haralayya, B.: Core banking technology and its top 6 implementation challenges. Journal of Advanced Research in Operational and Marketing Management. 4(1), 25–27 (2021)
Galazova, S.S., Magomaeva, L.R.: The transformation of traditional banking activity. Int. J. Econ. Business Admin. 7(Special issue 2), 41–51 (2019)
Navaratti, G.S., Calzolari, G., Mansilla-Fernandez, J.M.: Fintech and banking. Friends or foes? J. European Economy – Banks Regulation. Real Sect. 2017, 2 (2018)
Siek, M., Sutanto, A.: Impact analysis of Fintech on banking industry. International Conference on Information Management and Technology (ICIMTech), pp. 356–361 (2019). https://doi.org/10.1109/ICIMTech.2019.8843778
Bucchiarone, A., Dragoni, N., Dustdar, S., Larsen, S.T., Mazzara, M.: From monolithic to microservices: an experience report from the banking domain. IEEE Softw. 35(3), 50–55 (2018)
Megargel, A., Shankararaman, V., Walker, D.K.: Migrating from monoliths to cloud-based microservices: a banking industry example. In: Ramachandran, M., Mahmood, Z. (eds.) Software engineering in the era of cloud computing. Computer communications and networks. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-33624-0_4
Gil, D. G., & Díaz-Heredero, R.A.: A microservices experience in the banking industry. In Proceedings of the 12th European Conference on Software Architecture: Companion Proceedings (ECSA '18). Association for Computing Machinery, New York, Article 13, pp. 1–2 (2018). https://doi.org/10.1145/3241403.3241418
Wang, X., Wang, S., Hao, Z., Zhang, X.: Research on the construction of regional credit bank platform based on microservices. In: 10th International Conference on Measuring Technology and Mechatronics Automation (ICMTMA), pp. 452–456 (2018). https://doi.org/10.1109/ICMTMA.2018.00116
Yanagawa, E.: Microservices opportunity: Dawn of the open API era. Journal of Digital Banking. 3(3), 260–278 (2019)
Amaral, M., Polo, J., Carrera, D., Mohomed, I., Unuvar, M., Steinder, M.: Performance evaluation of microservices architectures using containers. In: 2015 IEEE 14th International Symposium on Network Computing and Applications (2015). https://doi.org/10.1109/nca.2015.49
Tapia, F., Mora, M.Á., Fuertes, W., Aules, H., Flores, E., Toulkeridis, T.: From monolithic systems to microservices: a comparative study of performance. Appl. Sci. 10(17), 5797 (2020). https://doi.org/10.3390/app10175797
Al-Debagy, O., Martinek, P.A.: Comparative review of microservices and monolithic architectures. In: Proceedings of the 2018 IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI), pp. 149–154, Budapest (2018)
Akbulut, A., Perros, H.G.: Performance analysis of microservices design patterns. IEEE Internet Comput. 23, 19–27 (2019)
Singh, V., Peddoju, S.K.: Container-based microservice architecture for cloud applications. In: Proceedings of the IEEE 2017 International Conference on Computing, Communication and Automation (ICCCA), pp. 847–852, Greater Noida (2017). https://doi.org/10.1109/CCAA.2017.8229914
Balalaie, A., et al.: Microservices migration patterns. Softw. Pract. Exp. 48, 2019–2042 (2018). https://doi.org/10.1002/spe.2608
Fritzsch, J., Bogner, J., Wagner, S., Zimmermann, A.: Microservices migration in industry: intentions, strategies, and challenges. (2019). https://doi.org/10.1109/ICSME.2019.00081
Ponce, M.F., Márquez, G., Astudillo, H.: Migrating from a monolithic architecture to microservices: A rapid review. (2019). https://doi.org/10.1109/SCCC49216.2019.8966423
Eski, S., Buzluca, F.: An automatic extraction approach: transition to microservices architecture from a monolithic application. In: In Proceedings of the 19th International Conference on Agile Software Development: Companion (XP '18). Association for Computing Machinery, New York, NY, USA, Article 25, pp. 1–6 (2018). https://doi.org/10.1145/3234152.3234195
Fan, C.Y., Ma, S.P.: Migrating monolithic mobile application to microservice architecture: An experiment report. In: 2017 IEEE international conference on AI & mobile services (AIMS), pp. 109–112, Honolulu, HI (2017). https://doi.org/10.1109/AIMS.2017.23
Gouigoux, J.P., Tamzalit, D.: From monolith to microservices: lessons learned on an industrial migration to a web oriented architecture. In: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW), pp. 62–65 (2017)
Escobar, D., Cardenas, D., Amarillo, R., Castro, E., Garces, K., Parra, C., Casallas, R.: Towards the understanding and evolution of monolithic applications as microservices. In: 2016 XLII Latin American Computing Conference (CLEI) (2016). https://doi.org/10.1109/clei.2016.7833410
Kecskemeti, G., Marosi, A.C., Kertesz, A.: The ENTICE approach to decompose monolithic services into microservices. In: 2016 International Conference on High-Performance Computing & Simulation (HPCS) (2016). https://doi.org/10.1109/hpcsim.2016.7568389
Mazlami, G., Cito, J., Leitner, P.: Extraction of microservices from monolithic software architectures. In: 2017 IEEE International Conference on Web Services (ICWS), pp. 524–531 (2017). https://doi.org/10.1109/ICWS.2017.61
Software Deployment Meaning, DevOps and Security Glossary Terms. https://www.sumologic.com/glossary/software-deployment/ (n.d.). Accessed March 2022
Vernon, V., Jaskula, T.: Strategic monoliths and microservices: driving innovation using purposeful architecture. Addison-Wesley Professional Publishing (2022)
Richardson, C.: Choosing a microservices deployment strategy. https://www.nginx.com/blog/deploying-microservices/. (2016). Accessed March 2022
Indrasiri, K., Siriwardena, P.: Microservices for the enterprise: designing, developing, and deploying. Apress Publishing (2018). https://doi.org/10.1007/978-1-4842-3858-5
Containers, IBM. https://www.ibm.com/cloud/learn/containers (n.d.). Accessed March, 2022
Docker Container Technology. https://www.docker.com/ (n.d.). Accessed March 2022
Pod Manager Tool (Podman). https://podman.io/ (n.d.). Accessed March 2022
What is Kubernetes? https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ (n.d.). Accessed March 2022
Marathon – container orchestration platform for Mesos and DC/OS. https://mesosphere.github.io/marathon/ (n.d.). Accessed March 2022
Newman, S.: Building microservices: designing fine-grained systems, 1st edn. O'Reilly Media (2015)
Burns, B., Villalba, E., Strebel, D., Evenson, L.: Kubernetes best practices: blueprints for building successful applications on Kubernetes. O’Reilly Media (2019)
CNCF – Cloud native computing foundation. https://www.cncf.io/ (n.d.). Accessed March 2022
APISIX – An open source API gateway to manage microservices. https://www.apisix.apache.org/ (n.d.). Accessed March 2022
Apache Kafka message bus: Open-source distributed event streaming platform. https://kafka.apache.org/ (n.d). Accessed March 2022
Elasticsearch service sink connector for moving data from Kafka message bus to elastic search. https://docs.confluent.io/kafka-connect-elasticsearch/current/overview.html (n.d.). Accessed March 2022
Elasticsearch – A distributed, free and open search and analytics engine. https://www.elastic.co/ (n.d.). Accessed March 2022
Fielding RT Architectural styles and the design of network-based software architectures. University of California, Irvine (2000). https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
gRPC: A high-performance, open-source universal RPC framework. https://grpc.io/ (n.d.). Accessed March 2022
The Ion hypermedia type - an intuitive JSON-based hypermedia type for REST. https://ionspec.org/ (n.d.). Accessed March 2022
ASP.NET Core updates in .NET 7 Preview 4. (n.d.)
Madden, N.: API Security in Action. Manning Publishing (2020)
Sriwardena, P.: Microservices Security in Action: Design secure network and API endpoint security for Microservices applications, with examples, using Java, Kubernetes, and Istio. Manning Publishing (2020)
Open Authentication protocol (OAuth) based access-token lifetime. https://www.oauth.com/oauth2-servers/access-tokens/access-token-lifetime (n.d.). Accessed March 2022
Keycloak: Open source identity and access management. https://www.keycloak.org/ (n.d.). Accessed March 2022
Keycloak user storage provider (Service Provider Interface - SPI) https://www.keycloak.org/docs/latest/server_development/#_user-storage-spi (n.d.). Accessed March 2022
Open policy agent: policy-based control for cloud-native environments. https://www.openpolicyagent.org/ (n.d.). Accessed March 2022
Rego: A high-level declarative language to author fine-grained policies. https://www.openpolicyagent.org/docs/latest/policy-testing/ (n.d.). Accessed March 2022
Serilog: diagnostic logging library for .NET https://serilog.net/ (n.d.). Accessed March 2022
FluentD: open source data collector. https://www.fluentd.org/ (n.d.). Accessed March 2022
HashiCorp vault: manage secrets & protect sensitive data. https://www.vaultproject.io/ (n.d.). Accessed March 2022
HashiCorp Consul: service identities. https://www.vaultproject.io/ (n.d.). Accessed March 2022
Yilmaz, O.: Configuration and secret management with consul template on Kubernetes. https://medium.com/trendyol-tech/configuration-and-secret-management-with-consul-template-on-kubernetes-dcc4c6695142 (2020). Accessed March 2022
Rancher - A complete software stack that addresses the operational and security challenges of managing multiple Kubernetes clusters. https://rancher.com/why-rancher (n.d.). Accessed March 2022
JMeter: An open-source to load test tool for functional behavior and measuring performance. https://jmeter.apache.org/ (n.d.). Accessed March 2022
Istio: A Service mesh infrastructure for Kubernetes platform to transparently add capabilities like observability, traffic management, and security, without requiring any change in the microservices code. https://istio.io/latest/about/service-mesh/ (n.d.). Accessed March 2022
Richardson, C.: Pattern: SAGA. https://microservices.io/patterns/data/saga.html. Accessed March 2022
Acknowledgements
The work that is presented in this paper is supported by the Turkish Scientific and Technological Research Council (TÜBİTAK) in the context of a base research project with Project number 5210012.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors of this manuscript confirm that there are no conflicts of interest regarding its publication.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Aydemir, F., Başçiftçi, F. Building a Performance Efficient Core Banking System Based on the Microservices Architecture. J Grid Computing 20, 37 (2022). https://doi.org/10.1007/s10723-022-09624-z
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s10723-022-09624-z