Skip to content

abdelaziz-mahdy/backend-benchmark

Repository files navigation

Backend Benchmark Repository

Table of Contents

Introduction

This repository serves as a comprehensive resource for comparing backend technologies based on speed and load capabilities. Our benchmarks focus on write and read operations, as well as requests to static endpoints, reflecting real-world usage scenarios to assist developers and decision-makers in choosing the most suitable backend framework for their needs.

Prerequisites

  • Docker installed on the system to run the benchmarks.
  • The scripts/start_tests.sh script is used to launch each test and create the graphs.

Completed Benchmarks

Benchmarks are categorized into:

  1. Database Tests (db_test): Involving database operations such as read and write requests.
  2. Static Endpoint Tests (no_db_test): Involving requests to static endpoints without database interaction.

Python

  • Django (Sync and Async)
    • Connection Pooling with PgBouncer.

Dart

  • Serverpod

JavaScript/TypeScript

  • Express (Node and Bun)

C#

  • .Net Core

Go

Rust

Testing Tool: Locust

  • Configuration:
    • Users: 10000
    • Spawn Rate: 10 users/second
    • Test Duration: 1000 seconds

Benchmark Visualization

Visual comparisons for database endpoints and static endpoints are provided to showcase performance differences across technologies.

Database Endpoints

Comparison Graph with db endpoints

Comparison Graph

Detailed Graphs for each backend

Attribute Django Async Backend Django Sync Backend Dart Serverpod Backend Express Bun Backend Express Node Backend C# .NET Backend Go Mux Backend
Benchmark Graph Django Async Backend Benchmark Graph Django Sync Backend Benchmark Graph Dart Serverpod Backend Benchmark Graph Express Bun Backend Benchmark Graph Express Node Backend Benchmark Graph C# .NET Backend Benchmark Graph Go Mux Backend Benchmark Graph

Static Endpoints

Comparison Graph with static endpoints

Comparison Graph

Detailed Graphs for each backend

Attribute Django Async Backend Django Sync Backend Dart Serverpod Backend Express Bun Backend Express Node Backend C# .NET Backend Go Mux Backend
Benchmark Graph Django Async Backend Benchmark Graph Django Sync Backend Benchmark Graph Dart Serverpod Backend Benchmark Graph Express Bun Backend Benchmark Graph Express Node Backend Benchmark Graph C# .NET Backend Benchmark Graph Go Mux Backend Benchmark Graph

About

This resource compares backend technologies with benchmarks on write/read operations and static endpoint requests, aiding in selecting the best framework based on speed and load handling.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published