Architecture Guilds

Jakub Nabrdalik had a talk about mistakes made when moving to microservices at GeeCon Prague 2019. You can watch it also in polish from Confitura 2019.

He did a thesis that majority of companies that migrated to microservices from a legacy monolith made similar mistakes. From his experience as a consultant, he described what was done poorly and how to do it better.

Big part of talk was about software architecture and how it was enforced in companies. My favorite quote from this part is:

Architecture is the shared understanding of people on the project.

My conclusions that came from this quote:

  • all developers create the software architecture consciously or not
  • sharing knowledge is the best way to enforce architecture changes
  • all developers must have a single baseline to compare their individual understanding of architecture

Jakub Nabrdalik introduced a solution that covers part of these conclusions – architecture guilds. Guilds are a way for spreading and cultivate the knowledge. To be effective, they need to be open and share there work with whole company. Members of the guild have to guide and teach.

To cover the rest of these conclusions Jakub Nabrdalik was convincing the audience to implement C4 model of theirs software architecture in open for all developers repository. This way every developer could introduce changes as pull requests that would be reviewed. This repo would be the baseline for everyone to compare.

Jakub Nabrdalik recommended books by Simon BrownSoftware Architecture for Developers.

He covered other topics of migration from monolith to microservices. I will not cover them, so if you want to know more go watch it.

Event-Driven Systems & CQRS

Jakub Nabrdalik in his talk also recommended another book – Designing Event-Driven Systems by Ben Stopford. You can download it right now for free from Ben Stopford’s site. I did it and read it in less than a week.

Ben Stopform is CTO of Confluent – a company that describe itself as The Complete Event Streaming Platform For Apache Kafka.

No one will be surprised that his book about the event streaming is based on Apache Kafka. Fortunately, this book is not just an advertisement for technology. Examples are made in Apache Kafka, but the knowledge is universal.

I like the fact that this book introduces more and more difficult concepts one by one. Each concept is break down with an example. All examples are about the same use-case, so it easy to compare them.

I like this book, because it gave me confidence on how and when to use the event streaming. Here on of my favorite quotes from this book. I hope they will encourage you to read it.

Centralize an immutable stream of facts. Decentralize the freedom to act, adapt and change.

Event Sourcing ensures every state change in system is recorded, much like a version control system.

If an event stream is source of truth, you can have as many different views in as many different shapes (…) as you may need.

If you squint a bit, you can see the whole of your organization’s systems and data flows as a single distributed database. Jay Kreps, 2013

The more mutable copies, the more data will diverge over time.

Talk at Poznan University of Technology

On Monday I had a presentation at put.net. It is the science club at Poznan University of Technology. Their main focus is C#, but they talk about many other aspects of developing software. Jakub Riegel, who takes care of Web Development section, invited me to talk about REST API. I was very happy to help and share my experience with students.

I introduced them to common REST API implementation with HTTP and JSON. Oliver Drotbohm’s presentation inspired me to show students usage of HATEOAS. Here you can read the slides from my presentation.

Bookmarks drop