Database Engineering for Microservices: PostgreSQL as the Foundation
DOI:
https://doi.org/10.63282/3050-9262.IJAIDSML-V5I4P103Keywords:
Microservices, PostgreSQL, Database Engineering, Distributed Transactions, Data Consistency, Schema EvolutionAbstract
Software development using microservices architecture is revolutionized due to the fact that microservices are scalable, modular and independently deployable services. Database engineering in microservices is paramount as it helps in efficiency, consistency, and availability. Considered an ideal choice for microservices, PostgreSQL is an advanced open-source relational database that has numerous robust features. In this paper, we discuss the challenges of database management in Microservices architecture, the capabilities offered by PostgreSQL, and how we can optimize database design, transactions, and performance tuning. We show empirically that these distributed transactions and data consistency issues are solvable in PostgreSQL. Finally, we conclude that PostgreSQL is a robust foundation for different microservice applications that provide resilience, scalability, and great query processing
References
[1] Josélyne, M. I., Tuheirwe-Mukasa, D., Kanagwa, B., & Balikuddembe, J. (2018, May). Partitioning microservices: A domain engineering approach. In Proceedings of the 2018 International Conference on Software Engineering in Africa (pp. 43-49).
[2] Bucchiarone, A., Dragoni, N., Dustdar, S., Lago, P., Mazzara, M., Rivera, V., & Sadovykh, A. (2020). Microservices. Science and Engineering. Springer.
[3] Laigner, R., Zhou, Y., Salles, M. A. V., Liu, Y., & Kalinowski, M. (2021). Data management in microservices: State of the practice, challenges, and research directions. arXiv preprint arXiv:2103.00170.
[4] Wang, Y., Kadiyala, H., & Rubin, J. (2021). Promises and challenges of microservices: an exploratory study. Empirical Software Engineering, 26(4), 63.
[5] Liu, G., Huang, B., Liang, Z., Qin, M., Zhou, H., & Li, Z. (2020, December). Microservices: architecture, container, and challenges. In 2020 IEEE 20th international conference on software quality, reliability and security companion (QRS-C) (pp. 629-635). IEEE.
[6] Baškarada, S., Nguyen, V., & Koronios, A. (2020). Architecting microservices: Practical opportunities and challenges. Journal of Computer Information Systems.
[7] Lewis, J., & Fowler, M. (2014, March). A definition of this new architectural term.
[8] Munonye, K., & Martinek, P. (2020, June). Evaluation of data storage patterns in a microservices architecture. In 2020 IEEE 15th International Conference of System of Systems Engineering (SoSE) (pp. 373-380). IEEE.
[9] Richardson, C. (2018). Microservices patterns: with examples in Java. Simon and Schuster.
[10] Viennot, N., Lécuyer, M., Bell, J., Geambasu, R., & Nieh, J. (2015, April). Synapse: a microservices architecture for heterogeneous-database web applications. In Proceedings of the tenth European conference on computer systems (pp. 1-16).
[11] Bernstein, P. A., Hadzilacos, V., & Goodman, N. (1987). Concurrency control and recovery in database systems (Vol. 370). Reading: Addison-Wesley.
[12] Li, S., Zhang, H., Jia, Z., Zhong, C., Zhang, C., Shan, Z., & Babar, M. A. (2021). Understanding and addressing quality attributes of microservices architecture: A Systematic literature review. Information and software technology, 131, 106449.
[13] Stonebraker, M., & Çetintemel, U. (2018). "One size fits all" is an idea whose time has come and gone. In Making databases work: the pragmatic wisdom of Michael Stonebraker (pp. 441-462).
[14] Cubukcu, U., Erdogan, O., Pathak, S., Sannakkayala, S., & Slot, M. (2021, June). Citus: Distributed postgresql for data-intensive applications. In Proceedings of the 2021 International Conference on Management of Data (pp. 2490-2502).
[15] Messina, A., Rizzo, R., Storniolo, P., Tripiciano, M., & Urso, A. (2016). The database-is-the-service pattern for microservice architectures. In Information Technology in Bio-and Medical Informatics: 7th International Conference, ITBAM 2016, Porto, Portugal, September 5-8, 2016, Proceedings 7 (pp. 223-233). Springer International Publishing.
[16] Salunke, S. V., & Ouda, A. (2024). A Performance Benchmark for the PostgreSQL and MySQL Databases. Future Internet, 16(10), 382.
[17] Stones, R., & Matthew, N. (2006). Beginning databases with postgreSQL: From novice to professional. Apress.
[18] Waseem, M., Liang, P., & Shahin, M. (2020). A systematic mapping study on microservices architecture in DevOps. Journal of Systems and Software, 170, 110798.
[19] Kleppmann, M. (2017). Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems. " O'Reilly Media, Inc.".
[20] DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., & Vogels, W. (2007). Dynamo: Amazon's highly available key-value store. ACM SIGOPS operating systems review, 41(6), 205-220.
[21] Reddy Kavuluri HV. PostgreSQL vs. Oracle: A Comparative Study of Performance, Scalability, and Enterprise Adoption. International Journal of Emerging Trends in Computer Science and Information Technology (IJETCSIT): 5(2):33-41. Available from: https://ijetcsit.org/index.php/ijetcsit/article/view/99
[22] Avula SB. PostgreSQL Table Partitioning Strategies: Handling Billions of Rows Efficiently. International Journal of Emerging Trends in Computer Science and Information Technology (IJETCSIT), 2024; 5(3):23-37. Available from: https://ijetcsit.org/index.php/ijetcsit/article/view/100
[23] ReddyKavuluri HV. Advanced Role-Based Access Control Mechanisms in Oracle Databases. International Journal of AI, BigData, Computational and Management Studies (IJAIBDCMS). 2024, 5(3):24-32. Available from: https://ijaibdcms.org/index.php/ijaibdcms/article/view/69