microsoft / durabletask-go

The Durable Task Framework is a lightweight, embeddable engine for writing durable, fault-tolerant business logic (orchestrations) as ordinary code.
Apache License 2.0
178 stars 25 forks source link

Support for libsql backend #40

Closed balchua closed 6 months ago

balchua commented 8 months ago

Hi, will it be interesting to support libsql/ sqld / libsql-server.

Recently i tried using the sqld, with s3 replication, and it works with just changing the db url instead of file.

Fyi libsql is an open contribution of sqlite fork.

cgillum commented 8 months ago

Hi. This is my first time hearing of libsql and it seems like an interesting project.

I did some brief reading, and I'm not exactly sure yet what advantage the project would have in supporting libsql vs. just focusing on sqlite. I suppose the possibility of supporting the proprietary remote service could be valuable.

Please give me some time to think about this further.

FYI @ItalyPaleAle in case this seems like an interesting project to you.

ItalyPaleAle commented 8 months ago

I think this is an interesting project.

I see that there are 2 different projects linked. One is a SQLite fork, and the other one is a “SQLite server”. I assume that support for the second is what you’re mostly interested in? As long as we can support transactions, I think it’s doable.

However, I do think that if you want a DB server, focusing on Postgres may be better?

balchua commented 8 months ago

Hi @ItalyPaleAle @cgillum You are right, the one that interest me a lot is the libsql-server variant.
The fact that it supports s3 replication (backup and restore) is a win for me. Here's what I am doing today, i launch the libsql-server as a container without persistent volume and have it backup to an external S3 storage. I find this to be a setup low ops. Yes it does support transactions. However, libsql-server is still a work in progress.

I had a PR #41 attached to this issue, in case this is aligned with the project objectives or vision.

Once again, thank you both for your time.

ItalyPaleAle commented 8 months ago

@balchua thanks for the context!

I have to admit I’m a bit hesitant to add support for something that is still a WIP (libsql-server), but I can see its appeal. In any case, I will defer this decision to @cgillum that is the maintainer of this project.

However, may I ask how you are using this library (durabletask-go)? I am interested in understanding your use case!

balchua commented 8 months ago

Thank you. My use case will be to use durabletask as a simple service orchestrator. Similar to what temporal or cadence is kindda doing.

However i find cadence and temporal a little bit too heavy for my use case.

I like that durabletask is that it is "just" a library. Therefore having a low ops dependency is very appealing for me.

balchua commented 6 months ago

I am closing this issue see PR comment