Skip to content

mgodave/driftwood-public

Repository files navigation

DO NOT USE - This is constantly in a state of broken as I experiment with things.

This is a project I have worked on privately for the last few years. Originally it supported grpc and rsocket but lately the rsocket reactive rpc bindings have fallen into disrepair and there is very little appetite for their use so I dropped support. In general this project is just a lot of unfinished ideas; an excuse for me to use DistributedLog once again, and try some silly ideas out in an interesting space. Lots of stuff doesn't work or isn't tested but if you would like to chat about some of these ideas lmk, I'd be happy to share some of my misadventures.

=========================================================

Driftwood is a read and write proxy for Apache DistributedLog. Currently the only supported library (I didn't look hard) for interacting with DistributedLog is Java based. This tool allows one to expose the DistributedLog library to clients written in other languages by exposing it as a gRPC or RSocket endpoint. The read and write sides have been spit out into separate services but if you wish you could use this as a library and host both in the same process.

./gradlew distZip will create a binary package named streamName-$VERSION.zip under driftwood-app/build/distributions

The basic usage is:

streamName [readproxy, writeproxy] grpc

I tried to include all available options for both gRPC and RSocket clients/servers, GrpcClientOptions.java and GrpcServerOptions.java are the most comprehensive.

This project was/is a learning experience for me using a technology I am familiar with (along with many I am not), it is undocumented, untested, and filled with moments of "WTF was he doing" still I bet there's something here to build upon so if you're interested I'd be happy to talk about it and accept patches.

I added a few tests...

About

DistributedLog fever dreams

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published