[ANN] erles - Erlang client for Event Store

Hi,

I’d like to announce my small side project called erles – Erlang

client for Event Store, licensed under The MIT License. You can find the source

at https://bitbucket.org/anakryiko/erles.

Currently it supports almost all standard operations:

  • connection both to single node, as well as cluster (through providing list

of endpoints or DNS entry and manager HTTP port);

  • automatic failover to master, overload protection, etc;

  • batch writes;

  • transactional writes;

  • stream deletion (both soft-deletes and permanent ones);

  • single event reads;

  • range reads from usual streams and from $all (with unified syntax);

  • permanent catch-up subscription which both read historical events and

re-subscribes in case of subscription drop;

  • primitive subscriptions (for those masochistic enough :wink: );

  • working with stream metadata both in structured form, as well as in raw binary form.

I will try to keep it on par with official Event Store’s client feature-wise and

hopefully make it simple and fun to use, while providing all necessary options

for tuning behavior.

It doesn’t yet support SSL connection and getting/setting system settings with default ACLs.

The library is very young and also I’m quite new to Erlang itself (it’s been

roughly 2 month since I started to play with Erlang) and there is a chance that

I messed something badly. So I hope for community feedback and with your help

will try to make it solid client library for Event Store. It’s not yet for

production use and some aspects of it can be changed, but I think it is already

quite useful to play with Event Store. See README for some docs, though some

parts are still missing and to be added in following few days. You are

encouraged to check erles_tests.erl file for example usage of erles functionality.

Pay attention, as erles uses and supports some of nice latest changes to

Event Store (next expected versions on writes and soft deletes), which haven’t been released yet,

erles can be used only with latest dev-builds currently. As soon as Event Store

releases its new version, erles will stick to supporting stable versions.

I hope you enjoy it!

Best regard,

Andrii Nakryiko

Nice work, Andrii! I’ll be sure to take a look :slight_smile: