Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dart client ? #36

Open
winwisely99 opened this issue Feb 10, 2020 · 8 comments
Open

Dart client ? #36

winwisely99 opened this issue Feb 10, 2020 · 8 comments

Comments

@winwisely99
Copy link

Dart / flutter supports grpc and protobufs and flatbuffers

Is there ongoing work anywhere on a dart lib ?

@tylertreat
Copy link
Member

There is a lot of interest in a Dart client (see #32 and liftbridge-io/liftbridge#34 for example). Unfortunately, I haven't had time to focus on that. I don't know if anyone is currently working on one.

@winwisely99
Copy link
Author

thanks @tylertreat

Well we might just embed the go client inside flutter using gomobile. Its a common solution.
Our Issue on it:
https://github.com/getcouragenow/embed/issues/4

@tylertreat
Copy link
Member

Cool, interested to hear your experience using Liftbridge and outcomes of your evaluation.

@winwisely99
Copy link
Author

Update
We got GRPC working with NATS. BOth for Web (grpc-web) and naive. had to use envoy in k8.
SO i think it will be easy to make it work with Liftbridge and we are keen to try.

Hows the flat buffers work going. are you close to v1 ?

@tylertreat
Copy link
Member

We will not be using flatbuffers in 1.0 due to the lack of gRPC support across a wide number of languages (see discussion here). The 1.0 release is very close however. Planning on the next week or so.

@winwisely99
Copy link
Author

@tylertreat thanks for update. Glad to hear this decision was made as it will make it possible to start using LiftBridge now.

We are getting 50 K transactions per second on NATS Streaming with the PostreSQL backing.
With memory we get 900 K on the same hardware.

So we are keen to put LIftBridge into our architecture.

One thing i have not worked out is how NATS Server (s) are configured when used with Liftbridge in terms of HA. A mutation hits NATS and then is distributed to the LiftBridge nodes ( 3 normally for HA reasons). But how is NATS setup to be HA.

I guess the answer is that the NATS Server does NOT need durable storage because the data gets distributed to 3 LiftBridge Servers immediately.
But there is only one NATS Server and so its a single point of failure.

I am maybe calling things the wrong name, but i hope can understand what i am getting at.

@tylertreat
Copy link
Member

One thing i have not worked out is how NATS Server (s) are configured when used with Liftbridge in terms of HA. A mutation hits NATS and then is distributed to the LiftBridge nodes ( 3 normally for HA reasons). But how is NATS setup to be HA.

I guess the answer is that the NATS Server does NOT need durable storage because the data gets distributed to 3 LiftBridge Servers immediately.
But there is only one NATS Server and so its a single point of failure.

Indeed, the NATS server is merely a transport. Acking is the mechanism which provides delivery guarantees in Liftbridge (and NATS Streaming). For HA, I would recommend running a NATS cluster rather than a single NATS Server instance. The NATS cluster is configured independently of Liftbridge.

As an aside, there are plans to allow embedding a NATS instance within a Liftbridge server, but this is not yet implemented.

@winwisely99
Copy link
Author

@tylertreat thank you . you are awesome !!

We will look into how best to run a NATS Cluster on k8 and baremetal.
If you have any advice feel free to offer it.

We are open and our k8's are here: https://github.com/getcouragenow/network/tree/master/main/cloud/k8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants