Building distributed systems is fundamentally different from the synchronous world many developers are used to. Using messaging as communication and eventually consistent persistence introduce several pitfalls which might be hard to foresee. Moving applications to the cloud, as a general rule, removes transactions in its traditional form and new problems
When you start working on an existing project, open source or for a client, setting up the development environment is the first task you have to solve. If you are lucky the project has scripts for installing the required applications locally, but you will usually have to install required infrastructure
This article includes my opinionated view on a topic where there clearly is no "correct" answer. Some of the statements are influenced by others, in particular Udi Dahan and Adam Ralph. The perspective of "what a service is not" is inspired by Adam Ralph's talk Finding your service boundaries [https:
I previously wrote about my initial experiences working with Azure Functions during a summer project earlier this year. > See Azure Functions - first encounter [https://kofoedanders.com/azure-functions-first-encounter/] As great of an experience serverless and Azure Functions might provide, I still had some major obstacles I found hard to overcome.
During the summer I was working on a project with students for a pro bono customer. The project uses Azure Functions as back-end for a mobile application created using react-native. This was my first encounter with Azure Functions and serverless as a whole, which has been an entirely positive experience.
I previous wrote about my initial experience with F# and showed some characteristic operators and functionality. I think F# and functional programming is fun and efficient to work with, so I would like to build an application that uses F# where possible. > See F#: TypeProviders + Basic Operators [https://kofoedanders.com/
The other day I stumbled upon what I thought was an interesting problem, with an accompanying illustrative solution. The problem at hand is related to concurrency, which seems to be an inevitable problem when working with message bases solutions. I will describe the problem, and a solution that I found
Background There are a lot of articles online about git and different approaches and strategies, and this often becomes a point of discussion when talking to colleges. There are all the Git[insert non-descriptive language]Flow and different types of pull request strategies, all trying to solve some kind of