Skip to content

Benchmark against other tools and add results to documentation #56

@tubarao312

Description

@tubarao312

Benchmarks

  • Same-worker environment is great to benchmark RabbitMQ-induced latency for the worker receiving the task and the result being ingested by the worker
  • Task ingestion time
  • Task object base size isn't a benchmark but it's a good metric
  • Calculating how network issues will affect performance is good but not very realistic since backends don't have a lot of network issues. However - it's quite common for companies to use services like RDS, so we can try to check what kind of latency using RDS with a VM in AWS induces and how that affects ingestion.
  • Figuring out how many tasks need to be produced per second for RabbitMQ and Postgres to blow up.
  • Figuring out encoding and decoding times when the task object enters and leaves the publisher, the worker, and the relay. Also for each language.

Tools

There are a lot of tools here, but we should focus on the Python ones first.

  • Celery
    • Using RabbitMQ
    • Using Redis
  • Hatchet

Others:

  • RQ
  • River
  • Oban
  • Asynq

Things to keep in mind

  • Perhaps we can shoot these guys a message before we publish the results to check if we are properly testing these tools?
  • Tools like Hatchet rely on various services and connections — perhaps we could try to measure how each application scales with RTT similar to how protocols like TCP and TLS care very wary of scaling with number of round trips?
def function():
  return ""

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions