EventStore/EventStore-Client-Dotnet

connection to F#

RauleHernandeza opened this issue · 2 comments

Is your feature request related to a problem?
I can't find a way to make a connection between F# and event store, however I have heard that other people have done it and I would like to know how to do it.

Describe the solution you'd like
I would like you to add the way to connect to the documentation if there is already a way to do it.

Describe alternatives you've considered
I would like to know if this connection is possible or not, and if it is possible, please tell me how to do it.

Additional context
I appreciate any information you can give me

@RauleHernandeza, I moved this to .NET gRPC client repository, as it's not an issue with the database, but more client snippets/samples. Indeed we don't have samples/snippets for F#, I hope we'll have more of them soon, but it's hard to promise when.

You can check https://github.com/jet/equinox/ maintained by @bartelink. That's an F# framework that has EventStoreDB support. Currently, it's using a TCP client, but gRPC client support is planned AFAIK. Tho, by looking at TCP client usage, you can find patterns on how to use gRPC one. I'm not aware of any blocking issues using EventStoreDB with F#.

Equinox has full gRPC support with the test suite running in full against a Docker cluster in jet/equinox#196 - I have not merged it as I am focused on jet/equinox#321 - adding DynamoDB support. You can look at the source in the first PR; if you would derive any benefit from it, I can merge it and release a NuGet (Equinox V4 will enter beta this month but I will be offline for most of June). The connection logic is pretty spartan as it is, but e.g. there's the full logic for reading and writing, and querying, i.e. AsyncSeq stuff.

Also worth mentioning is that in jet/propulsion#139 there's a $all projector/consumer/reactor loop to go with the existing TCP based one (I'll release that shortly after the Equinox release).

TL;DR stuff badged EventStoreDb in Equinox and Propulsion is the gRPC stuff, and the older stuff is using the TCP interface (I'll be removing that in V5)

If you want to chat about anything wrt this, feel free to drop into the #equinox room on the DDD-CQRS-ES Slack.