an example backend implement in nodejs and golang use most faster and popular libary
- nodejs: hono, drizzle
- golang: fiber, sqlc
- database: postgresql
before you started it, please make sure you already run of docker compose for database.
docker compose up -dand for golang, you need to install air for hot reload, sqlc for generate orm
go install github.com/air-verse/air@latest
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latestcd api-node
yarn
yarn drizzle:generate
yarn drizzle:migrate
yarn devcd api-go
yarn
yarn drizzle:generate
yarn drizzle:migrate
yarn sqlc:generate
yarn devcd api-go
yarn drizzle:studiocd api-node
yarn drizzle:studiocd api-go
yarn db:seedcd api-node
yarn db:seedcd api-go
yarn db:dropcd api-node
yarn db:dropbefore you run test you need to install playwright and autocannon
please make sure you have already data, if not yet you can seeding
yarnfor run test
yarn testfor run loadtest
yarn loadtest- os: windows 10
- ram: 8gb
- cpu: i5 6200u
- connection: 100
- duration: 10s
-
nodejs:
- latency: 16.24ms
- req/s: 5,991
- total: 60k in 10s
-
golang:
- latency: 9.37ms
- req/s: 10,195
- total: 102k in 10s
golang 1.7x faster than nodejs for return of json
-
nodejs:
- latency: 120.09ms
- req/s: 827
- total: 8k in 10s
-
golang:
- latency: 81.42ms
- req/s: 1,217
- total: 12k in 10s
golang 1.5x faster than nodejs for retrieving data from postgresql
-
nodejs:
- latency: 1558.83ms
- req/s: 6
- total: 74 in 10s
-
golang:
- latency: 458.67ms
- req/s: 21
- total: 228 in 10s
golang 3x faster than nodejs for retrieving data from postgresql