Prepping first stable Go binding API (v1)

21 views
Skip to first unread message

Péter Szilágyi

unread,
Jun 23, 2014, 9:38:48 AM6/23/14
to projec...@googlegroups.com
Hi all,

  Listening to many of your requests, as well as incorporating a lot of things I've learnt from an initial private use of Iris within RegionRank, I'm happy to announce that the first stable API of the Go binding for Iris is nearing release.

  A short summary of the updates and new features are:
  • Separately attachable client and service connections, allowing simple clients to connect and use the services within the network, without needing to go through the hassle of defining callback handlers.
  • Out of the box support for returning errors to requests, not requiring the client of the library to package both a reply and potential error in a result message.
  • Message size based throttling of tunnels, opposed to the previous count based one.
  • Resource limitation support for capping both the concurrent processing threads as well as the total memory consumption of pending queues (broadcast, request, publish).
  • Expiration support for queued requests, to prevent wasting resources on already timed out operations.
  • Tunnel chunking, effectively allowing arbitrarily large messages to be transferred (note, this is tunnel exclusive). 
  • Fully configurable leveled logger, printing by default INFO level logs (general life-cycle events) to STDERR.
  You can find the detailed documentation of the new release in the project readme, covering everything from installation, to quickstart, error handling, resource capping and logging. If I've missed anything you'd like added, just open an issue or reply to this mail.

  Note, that many of the features incorporated required a relay protocol update (v1.0-draft2). Due to this reason, the new Go binding is backward incompatible with previous Iris releases. The new relay protocol was already implemented in the core Iris node and is available from the source repository (branch relay-v1.0-draft2), but before proceeding with a full release, I need to update the Erlang client too so it might take a little.

  If you have time, please download and play with the new Go client release (and inherently the new core Iris node), have a feel for it and send in any issues you encounter. Although I'm hoping to for this API to be final, until the new Iris version is publicly released, I reserve the right to make very minor adjustments. So now's the time to criticize :D

Thanks and cheers,
  Peter
Reply all
Reply to author
Forward
0 new messages