- 🔨 Some drivers now use a new
config
key to handle local configuration. Involved plugins and drivers: plugins
: broadcast, kvdrivers
: memory, redis, memcached, boltdb.
broadcast:
default:
driver: memory
interval: 1
broadcast:
default:
driver: memory
config: {} <--------------- NEW
kv:
memory-rr:
driver: memory
config: <--------------- NEW
interval: 1
kv:
memcached-rr:
driver: memcached
config: <--------------- NEW
addr:
- "127.0.0.1:11211"
broadcast:
default:
driver: redis
config: <------------------ NEW
addrs:
- "127.0.0.1:6379"
- ✏️ [BETA] GRPC plugin update to v2.
- ✏️ Roadrunner-plugins repository. This is the new home for the roadrunner plugins with documentation, configuration samples, and common problems.
- 🐛 Fix: local and global configuration parsing
- 📦 Roadrunner
v2.5.0
- 📦 Roadrunner-plugins
v2.5.0
- 📦 Roadrunner-temporal
v1.0.10
- 🐛 Fix: bug with not-idempotent call to the
attributes.Init
. - 🐛 Fix: memory jobs driver behavior. Now memory driver starts consuming automatically if the user consumes the pipeline in the configuration.
- 🔨 Pool, worker interfaces: payload now passed and returned by the pointer.
- ✏️ Long-awaited, reworked
Jobs
plugin with pluggable drivers. Now you can allocate/destroy pipelines in the runtime. Drivers included in the initial release:RabbitMQ (0-9-1)
,SQS v2
,beanstalk
,memory
and local queue powered by theboltdb
. PR - ✏️ Support for the IPv6 (
tcp|http(s)|empty [::]:port
,tcp|http(s)|empty [::1]:port
,tcp|http(s)|empty :// [0:0:0:0:0:0:0:1]:port
) for RPC, HTTP and other plugins. RFC - ✏️ Support for the Docker images via GitHub packages.
- ✏️ Go 1.17 support for the all spiral packages.
- 🐛 Fix: fixed bug with goroutines waiting on the internal worker's container channel, issue.
- 🐛 Fix: RR become unresponsive when new workers failed to re-allocate, issue.
- 🐛 Fix: add
debug
pool config key to the.rr.yaml
configuration reference.
- 📦 Update goridge to
v3.2.1
- 📦 Update temporal to
v1.0.9
- 📦 Update endure to
v1.0.4
- 🐛 Fix: Do not call the container's Stop method after the container stopped by an error.
- 🐛 Fix: Bug with ttl incorrectly handled by the worker PR
- 🐛 Fix: Add
RR_BROADCAST_PATH
to thewebsockets
plugin PR
- RR Milestone 2.3.2
- ✏️ Rework
broadcast
plugin. Add architecture diagrams to thedoc
folder. PR - ✏️ Add
Clear
method to the KV plugin RPC. PR
- 🐛 Fix: Bug with channel deadlock when
exec_ttl
was used and TTL limit reached PR - 🐛 Fix: Bug with healthcheck endpoint when workers were marked as invalid and stay is that state until next request PR
- 🐛 Fix: Bugs with
boltdb
storage: Boom , Boom, Boom - 🐛 Fix: Bug with incorrect redis initialization and usage Bug
- 🐛 Fix: Bug, Goridge duplicate error messages Bug
- 🐛 Fix: Bug, incorrect request
origin
check Bug
- 📦 Update goridge to
v3.1.4
- 📦 Update temporal to
v1.0.8
- ✏️ Brand new
broadcast
plugin now has the name -websockets
with broadcast capabilities. It can handle hundreds of thousands websocket connections very efficiently (~300k messages per second with 1k connected clients, in-memory bus on 2CPU cores and 1GB of RAM) Issue - ✏️ Protobuf binary messages for the
websockets
andkv
RPC calls under the hood. Issue - ✏️ Json-schemas for the config file v1.0 (it also registered in schemastore.org)
- ✏️
latest
docker image tag supported now (but we strongly recommend using a versioned tag (like0.2.3
) instead) - ✏️ Add new option to the
http
config section:internal_error_code
to override default (500) internal error code. Issue - ✏️ Expose HTTP plugin metrics (workers memory, requests count, requests duration) . Issue
- ✏️ Scan
server.command
and find errors related to the wrong path to aPHP
file, or.ph
,.sh
scripts. Issue - ✏️ Support file logger with log rotation Wiki , Issue
- 🐛 Fix: Bug with
informer.Workers
worked incorrectly: Bug - 🐛 Fix: Internal error messages will not be shown to the user (except HTTP status code). Error message will be in logs: Bug
- 🐛 Fix: Error message will be properly shown in the log in case of
SoftJob
error: Bug - 🐛 Fix: Wrong applied middlewares for the
fcgi
server leads to the NPE: Bug
- 📦 Update goridge to
v3.1.0
- 🐛 Fix: revert static plugin. It stays as a separate plugin on the main route (
/
) and supports all the previously announced features. - 🐛 Fix: remove
build
and other old targets from the Makefile.
-
✏️ Reworked
static
plugin. Now, it does not affect the performance of the main route and persist on the separate file server (within thehttp
plugin). Looong awaited feature:Etag
(+ weak Etags) as well with theIf-Mach
,If-None-Match
,If-Range
,Last-Modified
andIf-Modified-Since
tags supported. Static plugin has a bunch of new options such as:allow
,calculate_etag
,weak
andpattern
. -
✏️ Update
informer.List
implementation. Now it returns a list with the all available plugins in the runtime.
- 🐛 Fix: issue with wrong ordered middlewares (reverse). Now the order is correct.
- 🐛 Fix: issue when RR fails if a user sets
debug
mode with theexec_ttl
supervisor option. - 🐛 Fix: uniform log levels. Use everywhere the same levels (warn, error, debug, info, panic).
- 🐛 Fix: issue with endure provided wrong logger interface implementation.
- ✏️ New
service
plugin. Docs: link - ✏️ Stabilize
kv
plugin withboltdb
,in-memory
,memcached
andredis
drivers.
- 🐛 Fix: Logger didn't provide an anonymous log instance to a plugins w/o
Named
interface implemented. - 🐛 Fix: http handler was without log listener after
rr reset
.
- ✏️ Add support for
linux/arm64
platform for docker image (thanks @tarampampam). - ✏️ Add dotenv file support (
.env
in working directory by default; file location can be changed using CLI flag--dotenv
orDOTENV_PATH
environment variable) (thanks @tarampampam). - 📜 Add a new
raw
mode for thelogger
plugin to keep the stderr log message of the worker unmodified (logger severity level should be at leastINFO
). - 🆕 Add Readiness probe check. The
status
plugin provides/ready
endpoint which return the204
HTTP code if there are no workers in theReady
state and200 OK
status if there are at least 1 worker in theReady
state.
- 🐛 Fix: bug with the temporal worker which does not follow general graceful shutdown period.
- 🐛 Fix: slow last response when reached
max_jobs
limit.
- 🐛 Fix: Bug with required Root CA certificate for the SSL, now it's optional.
- 🐛 Fix: Bug with incorrectly consuming metrics collector from the RPC calls (thanks @dstrop).
- 🆕 New: HTTP/FCGI/HTTPS internal logs instead of going to the raw stdout will be displayed in the RR logger at
the
Info
log level. - ⚡ New: Builds for the Mac with the M1 processor (arm64).
- 👷 Rework ServeHTTP handler logic. Use http.Error instead of writing code directly to the response writer. Other small improvements.
- 🐛 Fix: incorrect PHP command validation
- 🐛 Fix: ldflags properly inject RR version
- ⬆️ Update: README, links to the go.pkg from v1 to v2
- 📦 Bump golang version in the Dockerfile and in the
go.mod
to 1.16 - 📦 Bump Endure container to v1.0.0.
- ✔️ Add a shared server to create PHP worker pools instead of isolated worker pool in each individual plugin.
- 🆕 New plugin system with auto-recovery, easier plugin API.
- 📜 New
logger
plugin to configure logging for each plugin individually. - 🔝 Up to 50% performance increase in HTTP workloads.
- ✔️ Add Temporal Workflow plugin to run distributed computations on scale.
- ✔️ Add
debug
flag to reload PHP worker ahead of a request (emulates PHP-FPM behavior). - ❌ Eliminate
limit
service, now each worker pool includessupervisor
configuration. - 🆕 New resetter, informer plugins to perform hot reloads and observe loggers in a system.
- 💫 Expose more HTTP plugin configuration options.
- 🆕 Headers, static and gzip services now located in HTTP config.
- 🆕 Ability to configure the middleware sequence.
- 💣 Faster Goridge protocol (eliminated 50% of syscalls).
- 💾 Add support for binary payloads for RPC (
msgpack
). - 🆕 Server no longer stops when a PHP worker dies (attempts to restart).
- 💾 New RR binary server downloader.
- 💣 Echoing no longer breaks execution (yay!).
- 🆕 Migration to ZapLogger instead of Logrus.
- 💥 RR can no longer stuck when studding down with broken tasks in a pipeline.
- 🧪 More tests, more static analysis.
- 💥 Create a new foundation for new KV, WebSocket, GRPC and Queue plugins.
- PHP tests use latest signatures (roadrunner-server#550).
- Endure container update to v1.0.0-RC.2 version.
- Remove unneeded mutex from the
http.Workers
method. - Rename
checker
plugin package tostatus
, remove/v1
endpoint prefix (#557). - Add static, headers, status, gzip plugins to the
main.go
. - Fix workers pool behavior -> idle_ttl, ttl, max_memory are soft errors and exec_ttl is hard error.
- Add support for the overwriting
.rr.yaml
keys with values (ref: https://roadrunner.dev/docs/intro-config) - Make logger plugin optional to define in the config. Default values: level ->
debug
, mode ->development
- Add the ability to read env variables from the
.rr.yaml
in the form of:rpc.listen: {RPC_ADDR}
. Reference: ref: https://roadrunner.dev/docs/intro-config (Environment Variables paragraph)
- Update RR to version v2.0.0-RC.2
- Update Temporal plugin to version v2.0.0-RC.1
- Update Goridge to version v3.0.1
- Update Endure to version v1.0.0-RC.1