Architect at NRK TV / NRK Radio
Architect at NRK TV / NRK Radio
tl;dr; When testing resiliency we seek to understand how an application reacts to simulated transient errors under high load and how it can gracefully recover. If we tie the configuration of transient-error simulation to the application in such a way that we have to redeploy to change configuration, we will reset memory, TCP state, threads […]
tl;dr API documentation is about defining an interface rather than documenting an implementation. We write API documentation by hand using OpenAPI and it is working well for us. The NRK TV team spent quite a long time finding a way to write documentation that works for us. I think there are mainly three misconceptions about […]
Tl;dr; In the previous blog-posts I have argued for a functional decomposition strategy. Now I will look at an example of how not partitioning by functionality, but rather by entities, has lead to a rapid growth in complexity in our API. As I discussed in my previous post, our philosophy for new API endpoints is […]
Veldig ofte snakker vi om kode som datalinjer, og da er det ikke så enkelt å forklare hvordan alt henger sammen. Denne gangen ønsker vi derfor å vise hvordan koden til en del av NRK har forandret seg de siste to årene.
Earlier I discussed how we identify bounded contexts. The example I used was implementing a system that only deals with the subdomain of desking the frontpage in a single bounded context. In this post I will discuss how we unite bounded contexts with HAL. We attempt to split the application into bounded contexts to better […]
The first post I wrote on architecture is really abstract, vague and lacking of context. In this blog post I will discuss the principles of alignment between problem space vs solution space, autonomous teams and how strategy should be the driver for architecture. Instead of being general I will discuss a recent case-study from NRK Radio. […]
The architect is possibly the most disputed and poorest understood role in software. We do not even agree what architecture is, so how could we possibly agree on what an architect is supposed to do. Developers frequently challenge the idea that we need architects at all. If we do not really know what an architect […]
As we approach a new problem we look for strategies to decompose that problem. The primary axis we choose for decomposition is fundamental to the architecture of the system we build. Technological boundaries are easy to identify in the codebase, and as such it is a tempting decomposition strategy. Strategies such as domain-driven design argue […]
Decoupling a legacy code base is hard. Decoupling legacy code bases is not only hard, but often we don’t even have a clear idea of the current couplings that exist in our system. Without a clear overview of the current state we can’t make sound decisions on what we should do to improve. This fact […]
NRK TV and its API has been through a transformation from a monolith to a service-orientated architecture (notice how I avoided the word μικρόservices). We are dogfooding our API from tv.nrk.no as if we were a smart-TV or a mobile app. We have also moved from TFS to Git. With smaller components change has a […]