---
title: "RoadRunner 2.4.0"
date: 2021-09-16
author: "Anton \"JD\" Titov"
featured_image: "https://stage.spiralscout.com/wp-content/uploads/2025/03/7@2x-1.png"
categories:
  - name: "Production Systems & Architecture"
    url: "/blog/category/production-systems-and-architecture.md"
tags:
  - name: "open-source"
    url: "/blog/tag/open-source.md"
  - name: "Roadrunner"
    url: "/blog/tag/roadrunner.md"
  - name: "spiral scout"
    url: "/blog/tag/spiral-scout.md"
---

# RoadRunner 2.4.0

Happy to announce a major overhaul to RoadRunner, *an open-source PHP application server written in Go* that our research and development team at [Spiral Scout](https://stage.spiralscout.com/) works on. Release 2.4.0 is a massive update that includes the following capabilities that were requested by the open-source engineering community. We will try to outline all the changes since the last time we gave an update.

## Queue plugin  


- RoadRunner can now manage your queues (previously this was only available in the Spiral Framework)
- We included worker level load-balancing (planned fair scheduling) to make sure that no jobs would get stuck
- We added support for RabbitMQ, Amazon SQS, Beanstalk, Memory, and Local drivers
- Memory driver will not persist task data but can be used to run background tasks
- Local (BoltDB) queue plugin guarantees at-least-once execution and can be used without any external brokers for smaller projects

Benchmarks (5950x machine, dummy payloads):

- Memory – 300K RPS (approx)
- RabbitMQ – 100K RPS (approx)
- Beanstalk – 10K RPS (approx)
- SQS – 1-2K RPS (approx)
- Local – 50 RPS (not K, just 50)

The plugin declares the queue pipelines on the fly, manages the re-connects, and ensures the system’s durability as a whole. Other functionality includes protobuf protocol, custom message headers, data serialization, delays, and retry functionality.

Documentation: [https://roadrunner.dev/docs/plugins-jobs/2.x/en](https://roadrunner.dev/docs/plugins-kv/2.x/en)

## KeyValue plugin

 In earlier releases, we included a new standard plugin to work with Key-Value storage and cache. The plugin provides PSR-16 compatible interface and supports multiple drivers:

- Redis (including Redis cluster)
- Memcache
- BoltDB (local storage)
- Memory (could be shared across workers)

Documentation: <https://roadrunner.dev/docs/plugins-kv/2.x/en>

## Temporal

You can now integrate with the Temporal workflow server SDK. Now you can run both tasks in a distributed and fault-tolerant fashion and create your own workflow definitions using async PHP SDK.

SDK: <https://github.com/temporalio/sdk-php>

Documentation: [https://docs.temporal.io/docs/php/introduction](https://docs.temporal.io/application-development?lang=php)

## Roadmap

We have a number of updates coming to RoadRunner 2 including GRPC (previously we provided a separate server), LetsEncrypt and PubSub bus, plus much more.

You can find the link to the overall release here: <https://github.com/spiral/roadrunner/releases/tag/v2.4.0>