Architecture Weekly

Share this post

Architecture Weekly #117 - 6th March 2023

www.architecture-weekly.com

Architecture Weekly #117 - 6th March 2023

Oskar Dudycz
Mar 6
2
Share this post

Architecture Weekly #117 - 6th March 2023

www.architecture-weekly.com

Welcome to the new week!

How to migrate from CRUD to Event Sourcing is it worth it? What strategies and techniques to use?

Those are questions that I'm asked a lot. I talked about that during Devoxx Poland for Ukraine conference, trying to cover generic considerations and show practical guidance.

Interested? Check the recording and share your thoughts!


JSON serialisation is so much fun. We can make jokes and curse, but we must live with it. Surprisingly, that’s not getting simpler if we use JavaScript or TypeScript. It may look simple as we have JSON.parse and JSON.stringify to make the mapping to text representation back and forth. That’s correct until we use more advanced types.

For JSON, Date and BigInt are already too advanced... I wrote a short guide on how to deal with that.

  • Fun with serial JSON


I like thorough, contextual work showing theory and how to build that in practice. It’s not easy to find such gems. Usually, they’re either theoretical or diving immediately into technical details. Check the article below to find an example of an article on how to do it well:

  • Jean-Philippe Dutrève - Messaging Patterns : Flow, SAGA, Messaging Gateway and Observability With RabbitMQ Exchange to Exchange Bindings


ChatGPT and related technologies are the hottest topics right now. Probably even your auntie heard the term. It’s a trend that was also appearing in the past. We already had such buzzes some time ago. Check the episode of the great Corecursive Podcast about the history of Eliza, one of the first chatbots:

  • Corecursive Podcast - The History and Mystery Of Eliza With Jeff Shrager

OpenAI published the API that lets you integrate with it. Greg Brockman, the president and chairman of OpenAI, said to TechCrunch:

“It takes us a while to get these APIs to a certain quality level. I think it’s kind of this, like, just being able to meet the demand and the scale.”

And that’s a reasonable approach to consider in general for our projects. Think in advance of what we want to achieve, but prioritise efforts. That can help to create proper boundaries and APIs but not make premature efforts to deliver all at once. I saw too many projects so focused on the 2nd day after launch that they forgot that it won’t happen unless they had a launch and validated the product-market fit.


Google open-sourced a new tool: Service Weaver: A Framework for Writing Distributed Applications.

  • Google - Introducing Service Weaver: A Framework for Writing Distributed Applications

Last few years, my focus has been on making Event Sourcing commodities. I do that because I see it as a straightforward and practical pattern in a nutshell. That work requires both working on tooling to make them more accessible and knowledge sharing. So I’m all for making things easier, removing boilerplate and cutting the ramp-up time.

Yet, I don’t think providing gargantuan tooling that will encapsulate everything is an answer to that topic. We had such ideas in the past, but none stayed with us longer. I think that critical to solving hard topics is distilling them and defining interactions between them. Making things explicit that have to be explicit and hiding complexity where it’s not needed.

To do that, we need to know the context we’re in. We need to understand our business and technical assumptions to know where to optimise and how to compose our tooling. And yes, composition and context are key aspects here. So instead of building a monolith tooling for monoliths, maybe we should focus on how to compose them to make them modular and flexible to transition in another architecture style (e.g. microservices) or extract parts of them separately when we need it. Of course, assuming that we want don’t want to end up with distributed monolith.

Check also great Alan Key’s topic on that:

  • Alan Kay - Power of Simplicity


Graph analysis is quite often related to machine learning and AI. Mainly because they’re fuzzy and not fitting entirely into our brains’ capacities. Yet, using them to model and visualise problems we’re trying to solve can give us great insights. System thinking can help in reducing noise. Check more on other ways to look at graphs.

  • Dirk Fahland - Multi Dimensional Process Analysis

  • Petar Veličković - Everything is Connected: Graph Neural Networks


Interested in yet another State of Something resources? I got you covered:

  • Solace - Results from the Industry's First Event-Driven Architecture Survey

  • Hired - 2023 State of Software Engineers

Check also other links!

Cheers
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

  • Jean-Philippe Dutrève - Messaging Patterns : Flow, SAGA, Messaging Gateway and Observability With RabbitMQ Exchange to Exchange Bindings

  • Solace - Results from the Industry's First Event-Driven Architecture Survey

  • Alan Kay - Power of Simplicity

  • Uwe Friedrichsen - The tail at scale

  • Dirk Fahland - Multi Dimensional Process Analysis

  • Shishir Mehrotra, Matt Hudson - Eigenquestions: The Art of Framing Problems

  • Andrea Sonea - How open is Open Banking

Distributed Systems

  • Kyle Kingsbury - Call Me Maybe: Carly Rae Jepsen and the Perils of Network Partitions

  • Google - Introducing Service Weaver: A Framework for Writing Distributed Applications

  • Gunnar Morling - O Kafka, Where Art Thou?

Testing

  • Josh Armitage - Serverless Testing, Local Considered Harmful? True Cloud Native Testing

AI

  • OpenAI - Introducing ChatGPT and Whisper APIs

  • Corecursive Podcast - The History and Mystery Of Eliza With Jeff Shrager

  • Petar Veličković - Everything is Connected: Graph Neural Networks

  • The Verge - Snapchat is releasing its own AI chatbot powered by ChatGPT

AWS

  • Andy Blackledge - Enterprise Integration Patterns with Serverless and CDK

JavaScript

  • Oskar Dudycz - Fun with serial JSON

.NET

  • .NET Frontend Day 2023 - Full conference recording

  • Aaron Stannard - Backpressure Explained

  • Jannik Buschke - F# event sourcing with Marten

  • Sergio Pedri - PolySharp - provides generated, source-only polyfills for C# language features, to easily use all runtime-agnostic features downlevel

Python

  • RaySQL - Distributed SQL Query Engine in Python using Ray

Scala

  • MOIA Engineering - How to use a Rust lib inside the Scala app

WebAssembly

  • Matt Butcher, Radu Matei - The Six Ways of Optimizing WebAssembly

Coding Live

  • Minko Gechev - leetcode problems I solved to prepare for my Google interview

Management

  • Jason Yip - My critique of “the Spotify Model”

  • Henrik Ståhl - The Scrum Fallacy

Industry

  • Hired - 2023 State of Software Engineers

  • Divya Mohan - The DevRel influencer trend. And why DevRel != tech influencer.

Share this post

Architecture Weekly #117 - 6th March 2023

www.architecture-weekly.com
Comments
TopNewCommunity

No posts

Ready for more?

© 2023 Oskar Dudycz
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing