Architecture Weekly #92 - 12th September 2022
Welcome to the new week!
The loudest news came from the Java community. Lightbend announced that they’re changing the Akka licence from Open Sourced to “Source Available” (whatever that means).
A bit quieter but still significant was the Heroku decision to drop the free tier of their services:
That’s yet another example that free lunch is over. I’m co-maintaining a relatively big and popular .NET library, Marten. It allows changing Postgres into document database and event store.
We’re non-paid hobbyists, doing that in our spare time. Also, the core features just work, we’re a mature tool, and there are not a lot of bugs around the existing features. We have plans to deliver bigger features, but they all require time, coordination and effort. Even though we have a lot of external contributors (over 100), the core features are typically delivered by the core team. In that regard, I understand Lightbend's motivation. They have a product that just works, and it’s not easy to get enough money from support.
They’re not the first ones to realise that too late. The brilliant people that made Open Source a widely used approach in the last 20 years growing. They got their families, shifted their priorities, and realised that GitHub stars won't pay their rent. That also impacted me; the birth of my daughter changed my priorities a lot. I still love to code and love to deliver, but I’m not so keen on making new initiatives for free.
Many people got spoiled by the Open Source tooling. They expect to get everything for free. When Duende changed the licence for their IdentityServer (a leading OAuth tool in .NET), the scream arose from many places:
“Microsoft, buy them!”
“How they dared!”
“Where’s the Open Source spirit?!”
People were also complaining that they’ll need to pay “so much” for the “core part of their product” and were asking around for other OSS replacements. See the irony there? In this case “so much” means below the 1 month wage of the developer. And core part means they expect to get the essential part related to security for free labour. Let me repeat that: for the key security part. Where’s the compliance, where’s the common sense?
On the other hand, there’s an Open Source creator ethos. that’s also a general issue with our Open Source community. We, as Open Source, started to do this because we wanted to build something meaningful, share it with others, and sometimes feed our egos. For some of us, the last aspect is the most important. From the survey made by Sean Killeen, the most staggering part for me was that some maintainers don’t want to build a community around them. That’s fine as long as you just want to create. But if you want to get money out of that, even to pay the rent to allow you to do more stuff for free, then you need to build community. You also need to learn how to build a product.
We should not expect help from big players. As Marten, we joined and left .NET Foundation. TLDR was no help, just troubles. Big corporations just using OSS as the income stream. There’s no ethos there. And that’s fine, as long as we understand that. Cloud providers started to benefit from getting money from hosting free, open-source products. They will continue to do that.
What’s the solution for that? Making products that people want to buy to help them solve issues that they don’t want to handle. Building platforms, e.g.:
Is changing license fixing an issue? It’s not. It’s a panic move, but it’s also needed to fix the legal stuff and move forward. Will Lightbend's decision bite them? Highly probable. Will it help them? Time will tell.
Why should you care? Is it yet another OSS drama? It is, but as mentioned earlier: free lunch is over. Check on your project stack. How many OSS products do you use? Do you support their creators anyhow? What will happen if they change their licences? How much will it cost you? Is your business model sustainable enough to survive that?
How do you handle Event Schema migrations inEven Sourcing? That's one of the first questions I hear while explaining #EventSourcing to people. I don't want just to answer "It depends", so I described potential strategy with examples using Marten. Even if you’re not in the .NET stack, I think that this should clear some of the potential confusion:
From other links, I recommend especially great talk on tradeoffs and what architecture really means:
More proofs that documentation as code is the go-to approach nowadays:
Running Quake on Apple Watch? Impossible? See:
Check also other links!
p.s. I invite you to join the paid version of Architecture Weekly. It already contains the exclusive Discord channel for subscribers (and my GitHub sponsors), monthly webinars, etc. It is a vibrant space for knowledge sharing. Don’t wait to be a part of it!
p.s.2. Ukraine is still under brutal Russian invasion. A lot of Ukrainian people are hurt, without shelter and need help. You can help in various ways, for instance, directly helping refugees, spreading awareness, and putting pressure on your local government or companies. You can also support Ukraine by donating, e.g. to Red Cross, the Ukraine humanitarian organisation. You may also consider joining Tech for Ukraine initiative.
Architecture Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.