danielgerlag / conductor

Distributed workflow server
MIT License
532 stars 98 forks source link

Pluggable data store? #6

Closed softwareguy74 closed 4 years ago

softwareguy74 commented 5 years ago

We refuse to use MongoDB. I understand that a document store is probably a natural fit for this but there are other options, such as PostgreSQL JSONB field.

Any chance at using other data provider such as NPGSQL?

danielgerlag commented 5 years ago

I have no plans to do that. I am considering switching to an embedded database so that the user does not need to run a MongoDB instance. Why do you refuse to use MongoDB? (it does not mean you have to use it for everything)

softwareguy74 commented 5 years ago

We don't want to setup and manage one. We're exclusively a PostgreSQL shop. I personally think you will get a lot or push back and low adoption if you go this route of using MongoDB and/or an embedded option. That flies in the face of most projects now of allowing injection of user specified services.

How hard would it really be to just provide an interface and IOC to allow developer to specify database provider for persistence store?

danielgerlag commented 5 years ago

That makes sense for a library, which is what we do in workflow core. This is not a library, it's a standalone application that uses the workflow core library internally.

softwareguy74 commented 5 years ago

You're right. Well, we just don't use MongoDB. The commercial workflow server we use at work uses SQL Server. Is there anyway we could at the very least be able to use an ADO provider? I realize this lends itself to using a document store, but many of the traditional RDBMS these days have support for that with JSON type columns. It would be really nice to be able to take advantage of that.

Worse case, I guess I could just alter the source code for that, right?

danielgerlag commented 5 years ago

The architecture lends itself to plugging into different implementations of a persistence store. However, I would like to spend my limited time building core features rather, and let the community contribute in areas where I can't focus.