JasperFx / marten

.NET Transactional Document DB and Event Store on PostgreSQL
https://martendb.io
MIT License
2.86k stars 455 forks source link

Making Marten Open Source model sustainable #1391

Closed oskardudycz closed 2 years ago

oskardudycz commented 4 years ago

This Issue will group the general discussion and concrete ideas (issues) of how to make Marten Open Source model more sustainable.

Currently, we're doing all the stuff after hours, we don't have sponsors. As it wouldn't be the good case if our project would be hit by bus factor we'd like to make it more sustainable. We'd like to be able to spend more dedicated time on Marten to provide more complex features (see eg. ambitious plan for Event Store improvements in v4). It won't be possible without financial contributions.

We'd like to gather all the ideas and feedback both from the core team and especially from our users.

So everyone is welcome to comment, place ideas, discuss and make constructive criticisms.

Here you can find the currently discussed ideas:

daveaglick commented 4 years ago

I have no idea if this would match your community and their expectations, and it's certainly as much a philosophical choice as a practical one, but I'd at least keep a change to the license on the table as an option.

Specifically, I've become rather fond of a dual-licensing model that provides openly developed software under a permissive license for non-commercial use while placing licensing fees on the use of software for commercial purposes.

Another alternative that's somewhat related is Tidelift. The idea there is that companies can pay a single "subscription" fee that entitles them to support and other pre-defined obligations by maintainers and Tidelift distributes that to the projects the subscriber is leveraging using an equitable formula to determine how much each project gets from each subscriber. While they support the .NET ecosystem, it's not particularly vibrant (...yet - I guess that's where new projects like this one come in).

cocowalla commented 4 years ago

@daveaglick I can see dual-licensing works well for "infrastructure components", like databases (TimescaleDB is one such example), but I think this model is much less appropriate and realistic for a library. Marten has gained a lot of traction amongst .NET developers with a fondness for Postgres, but I think requiring a paid license for commericial use would likely do a lot of damage to adoption.

daveaglick commented 4 years ago

@cocowalla

I think requiring a paid license for commericial use would likely do a lot of damage to adoption

Totally agree, and one of the reasons I don't think commercial use licenses fit every (or even most?) projects.

That said, my own views on what constitutes success in open source have been gradually changing. Conventional wisdom often tightly couples adoption with success, but I'm not so sure that's a good or useful metric anymore. It's particularly problematic for smaller open source projects because as the project gains traction and attracts more uses (yay success!), those users bring with them additional time burdens in the form of issues, chat messages, PR reviews, etc. That's great up to a point, but will continue to scale linearly (or even exponentially if the project gets some real traction) while the maintainers time doesn't scale well if at all. Sometimes if you're lucky you can add additional maintainers, but even that usually doesn't scale proportional to user growth of a hot project.

In that way, fee-based licensing actually helps a non-monetary goal. If you consider the side-effect of licensing fees acting as a limiting factor to growth in a positive light, that result could be viewed as a natural control over runaway adoption and the resulting time commitments it brings. And as more users find that the project warrants paying licensing fees, those fees help to offset the burden that additional growth causes. That's certainly an unconventional perspective but one I've been tossing around.

Anyway, got more than a little philosophical there :). I suspect none of that is relevant to Marten in-particular, but just some food for thought.

khalidabuhakmeh commented 4 years ago

Before investing weeks and months of work. It would probably be wise to have a conversation around the vision of Marten as a project. A vision statement sets the tone and expectation for all community members.

Currently, the tag line on the site is.

Polyglot Persistence for .NET Systems using the Rock Solid PostgreSQL Database.

That tagline is weak-sauce. I know what it is, but not why.

The goals stated by @oskardudycz are good goals, but it's not clear what they are in service to. I really suggest a call next week to do some brainstorming of what the maintainers of this project see as the future of Marten. This project is awesome, but it needs some marketing/promotion love. I have some free time right now to help :)