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 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 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/beep-beep-jobs

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/beep-beep-kv

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

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

Anton "JD" Titov
Anton "JD" Titov

I am the Chief Technology Officer and Co-Founder of Spiral Scout

All author posts
Scroll to top