Developers are often frustrated over technical debt. Me too. I realise the power of new technology, cloud scalability, platform and…
Independent IT Professional
Developers are often frustrated over technical debt. Me too. I realise the power of new technology, cloud scalability, platform and…
This is an AI generated text, an answer to a ChatGPT question that is just too interesting to throw away.
Data continuously flows through organisations, and on its way, it's transformed many times to serve different purposes. Functional design emphasises data transformationโprojectionsโ rather than repeatedly mutating state in a single database. One particularly useful form of projection is the creation of read-optimised data structures tailored to well-defined use cases.
In my article Kafka Versioning I have briefly covered different ways of handling versions and using schemas to manage changes to the data structures. However, merely understanding these concepts falls short when operating within an environment characterized by numerous teams and bounded contexts. It is necessary to identify patterns and principles for navigating model changes successfully.
I have worked with DDD for many years, and learned to not share databases and to use anti-corruption layers between systems and services. Therefore, I was at first very reluctant to connect Kafka directly to the databases. Wouldn't that recreate the monolith that we have been working so hard to get rid of?
Defining an event may seem straightforward, and when I wrote my first Kafka article I thought of all events as business events. I've now realized that there are various types, with Change Data Capture (CDC) events emerging as one of the most prevalent.
I'm filled with Christmas cheer. Because yesterday, we brought in the Christmas tree, and had a peaceful time with the family wrapping the Christmas gifts. While still in this mood, I want to tell you about my mum's Christmas on a small farm name Mรฅnstuga in the deep forests of Vรคrmland, in Sweden.
The Intelligence & Efficiency Team was formed two years ago. It is a digital, remote team that is spread out over several cities in two countries. When I joined them, their software was new and just about to go live. We rolled it out at the same time as we added a lot of new features. And, we did it under extreme time pressure.
When developers take shotcuts or decrease the quality to gain time, they will cause a technical debt. By doing nothing and letting the system age, the technical debt is growing too.
In a legacy system, what is it that you spend absolutely most time on? I would say, understanding code and finding out where to do a change. Most of us have been in the situation that we spend hours or days looking for exactly one single line that would be changed in a million line code base.