Architecture Weekly #151 - 30th October 2023
Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.
Welcome to the new week!
Are Verifiable Credentials the future of Identity Management? I'm not yet sure, but it's definitely an intriguing topic to investigate. Especially nowadays, when we'd like to have a privacy-first way to use our real identities in a digital world.
In the last webinar, we had a special guest, Mateusz Jendza, who probably spent one of the largest amounts of time applying it and also delivering it to production.
We had a good discussion on whether to apply it, when and how. The how was important, as Mateusz did two live demos presenting live different scenarios and use cases.
If you are interested in privacy, identity management, or you're working in a regulated and privacy-first industry like finance or healthcare, I strongly encourage you to check it!
Click here to watch the recording.
I recently had several discussions on the topic of Women in IT, parity and the state of our industry. That made me get back to the article I wrote in Polish 6 years ago. Unfortunately, I concluded that not much has changed. I decided to translate it and extend it with my recent experience.
I believe that, as men, we're privileged, and we need to do more. There's nothing wrong, by itself, with being privileged or having a better position. Nothing to be ashamed of. It's just a fact where we are. There will always be someone with more power, more voice, etc. We should just embrace that. The issue, in my opinion, is when privilege is changing into gatekeeping.
If you don’t agree with that, fine, but it’s still worth working on it for pragmatic reasons. All of my best-performing teams were those that were the most diverse. Having different perspectives, experiences and points of view enhances our design and our teamwork.
There are people in our industry that I tend to ignore in Architecture Weekly editions. I don’t want to give a platform to people who are attention seekers. They send hot takes, fire shots. Some of them hit the target, but most of them missed. I prefer an educated, pragmatic discussion and learning something instead of sending a Russian roulette of ideas.
One of those people is David Heinemeier Hansson. He’s quite famous for doing stuff that can be useful for him and presenting them as general solutions for the IT world problems. One of them was his Cloud Exit.
Today, I’d like to present you a reasonable, balanced analysis of that exit made by Forest Brazeal:
Read it to check why staying on-premise may be a valid solution for you, but only when you analyse it and your products’ and organisation's needs instead of just extrapolating DHH hot take.
The other person is Elon Musk. Besides the obvious lack of empathy, which is an issue, you never know whether his decision is a good move, or a whim. Nowadays, probably the latter.
He also decided to move Twitter X partially to on-premise. Which may be a good idea to some degree knowing its scale, but… They bragged about the results in their official engineering account. But this is how it looked like in real life:
As always: think for yourself, question authorities.
Continuing the migration story, but the other way around. Amazon, together with Zalando, migrated their storage from Cassandra to DynamoDB.
Migration out of Cassandra is quite a common trend. Not just because that’s a bad database. It’s really good, but because it’s costly to operate on a big scale. And big scale is what Cassandra was built for. Zalando wrote that:
Capacity planning and scaling the database both vertically and horizontally, together with managing backups and having a feasible disaster recovery plan, were other operational burdens on the team. Scaling considerations were especially challenging during high-throughput events such as Cyber Week, where we had to allocate two engineers just for the manual scaling of our Cassandra cluster.
And Zalando is not a small, underskilled organisation. I published his materials a few times. They decided to use DynamoDB because of:
Reduced operational and maintenance overhead
Introducing elasticity
Similar data partitioning and fewer changes in the existing source code
Faster disaster recovery
Of course, migration to DynamoDB by itself is not a general thing you should do, but analysing the matching with business, and organisation use cases can give you information if that’s something you should be doing or not. Read more to understand how Zalando built its migration strategy.
See also the great article explaining the reality of the DynamoDB modelling challenges:
It’s not so trivial as it’s glossed.
Having two full-time people to operate Cassandra is also the position that is needed quite often: Kafka Operator. It’s, again, a great tool, but not the cheapest to operate on your own.
The other downside of using it was that it didn’t have the proper messaging tools like queues, competing consumers, or dead letter queues. Seems that the Kafka team listens and provided Queues for Kafka under discussion:
Andrew Shoefield did a nice summary of the long consideration in the Kafka Improvement Proposal (KIP).
KIP-932 introduces a new kind of group called share groups. Share groups do not replace consumer groups. You choose which kind of group you want to use based on the consumption behaviour you desire.
The consumers in a share group work cooperatively together in a way that will be familiar to users of traditional message queues. You will be able to write Kafka consumer applications that use share groups to consume records from Kafka topics, and you can just scale up the number of consumers without having to worry about partitions. This is just like using a traditional message queue with multiple receiving applications.
It’s not yet clear whether it will be implemented, but I think having such capabilities is necessary to enable more advanced processing scenarios for Kafka.
Sounds like Generative AI is slowly getting to either a sanity check or maturity. The hype is getting slower and we’re getting numbers behind it. And those numbers are impressive but not great. Microsoft claims that it has a million paying GitHub Copilot users, but then there are reports that it’s still losing huge amounts of money.
TechRadar - Microsoft is reportedly losing huge amounts of money on GitHub Copilot
ZDNet - Microsoft has over a million paying Github Copilot users: CEO Nadella
It’s interesting to see if this business model is viable. Maintaining and running Large Language Models costs a lot. Generative AI has many use cases but is also limited in the scope of usage. Those tools will need to be more cost-effective and might not be as global usage as predicted.
Still, we already see that they helped in improving infrastructure and tooling that can be used for other scenarios. See, e.g. vector databases and what they can enable:
Developer Voices Podcast - Semantic Search: A Deep Dive Into Vector Databases (with Zain Hasan)
Olena Kutsenko - TensorFlow, Postgres, PGVector & Next.js: building a movie recommender
Look who’s back! Hackers stolen access tokens from Okta’s support account. If that reminds you something, then yes, year and a half ago exactly the same happened and we learned about that from Cloudflare. Not from Okta, they tried to hide it. And from whom we know it this time? Yes, from Cloudflare not from Okta.
Brian Krebs - Hackers Stole Access Tokens from Okta’s Support Unit
CloudFlare - How Cloudflare mitigated yet another Okta compromise
I was recommending Auth0 (that was bought by Okta) as my default identity management tool for startup, but having all of that, I will stop doing it…
We had a lot of discussion (and laughs) on the McKinsey report recently. It’s easy to dunk, not only because of content (which some parts are fair and correct) but also because of how big consulting companies work. It seems that the topic went even mainstream as John Oliver himself made a dedicated video in his Last Week Tonight show:
Must watch!
Check also other links!
Oskar
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 the Ukraine humanitarian organisation, Ambulances for Ukraine or Red Cross.
Architecture
Rebecca Parsons - How Will Evolutionary Architecture Evolve?
Maxime Sanglan-Charlier & Nick Tune - From Domain Boundaries to Software Architecture
Jez Humble, Holly Cummins - The Current State of Software Engineering
Joseph M. Hellerstein, Peter Alvaro - Keeping CALM: When Distributed Consistency is Easy
Distributed Systems
DevOps
Databases
Frontend
AI
Java
.NET
Khalid Abuhakmeh - How to use Testcontainers with .NET Unit Tests
Gérald Barré - Customizing the behavior of record copy constructors
Tim Deschryver - How to fully leverage Wolverine with its HTTP package
Coding Life
Product Design
Industry
TechRadar - Microsoft is reportedly losing huge amounts of money on GitHub Copilot
ZDNet - Microsoft has over a million paying Github Copilot users: CEO Nadella