Skip to content

Benchmark Deno KV vs Upstash Redis/AWS DynamoDB Global Tables/CF Workers KV/Cloud Firestore

License

Notifications You must be signed in to change notification settings

denoland/deno-kv-benchmarks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deno KV vs Other Databases Benchmark

In an effort to benchmark Deno KV against other serverless databases, this implements an application split into different services. Each service measures read/write latency to databases and are hosted in a way to ensure that the latency excludes any network latency—by e.g. provisioning both the serverless function in the same AWS region as the respective database.

For more details, check out the blog post summary.

Databases

How to setup the benchmark

  1. Setup the various cloud providers with Terraform by following the instructions in the provision README. All subsequent instructions must be run with the environment variables listed in the provision README.
  2. Deploy the Deno backend component by running the deployment script
    ./setup/provision/utils/deploy-deno-kv-backend.sh
  3. Populate the newly provisioned databases by running the population script
    ./setup/populate/populate-databases.sh
  4. Deploy the frontend by running the deployment script
    ./setup/provision/utils/deploy-deno-kv-frontend.sh
  5. View the frontend by visiting the link output by the deployment script.

Developing the frontend

The frontend requires frontend/lib/config.json to be present for its backend endpoint in order to invoke the various services. To create the JSON file you must build out the infrastructure as outlined in the provision README, then you can run

./setup/provision/utils/update-deno-kv-frontend.sh

which will create the config.json from the Terraform state file and required environment variables.