In the search for a good transport for ILP packets (and other things between components in an ILP architecture) I came across rsocket. :heart_eyes:

In the various experiments I have done so far I have come across all of the issues that this protocol neatly solves.

Things I really like:

  1. it uses any (TCP. WebSockets, HTTP2 etc) bidirectional transport to support a variety of interaction models (request/response, event, subscribe/stream, channel) in BOTH directions.
  2. it allows for different transports and avoids duplicating functions provided by the transport (e.g. no frame length in header when sent over WebSockets)
  3. supports Reactive backpressure

In short this is a protocol designed to do Reactive Streams over network boundaries.

I loved this video
It’s long…

We’ll be doing some experiments with sending ILP packets over rsocket and also using it for some interfaces between components like Rafiki and our SE and report back!