Abstract
Aims: This study aims to compare the performance of Golang and node.js as web applications backend regarding response time, CPU utilization, and memory usage by using MySQL and MongoDB as databases.
Background: There has been a lot of literature and research that addresses web server comparisons and database comparisons, but no one has discussed the combination of the two. Node.js and Golang (Go) were popular platforms that widely used as web and mobile application backends. While MySQL and Go are the two best open source databases that have different characters.
Objective: To compare the performance of Golang and node.js as web applications backend regarding response time, CPU utilization, and memory usage by using MySQL and MongoDB as databases.
Methods: In this study, we use four combinations of the web server and databases to compare, that is Node.js-Mysql, Node.js-MongoDB, Go-Mysql, and Go-MongoDB. Each database consists of 25 attributes with 1000 records. Each combination has the same routing URLs. From the previous study found a significant time difference between MySQL and MongoDB in query operations with 1000 data, so that in this study, the routing/showAll URL uses 1000 data.
Results: The result shows that the combination of Go and MySQL is superior regarding CPU utilization and memory usage, while Node.js and MySQL combination is superior regarding response time.
Conclusion: From this study can be concluded that the combination of Go-MySQL is superior regarding memory usage and CPU utilization, while Node.js-MySQL is superior regarding response time.
Other: With this research, web developers can determine the right platform for their application; they also can reduce application developing cost so that the development process can be completed more quickly. For the next research best performance platform can be tested for WebSocket communication protocol and real-time technology, because it may provide different results from this research.
Keywords: Golang, MongoDB, MySQL, Node.JS, performance comparison, programming.
Graphical Abstract