B+Trees are one the most common structures in the database world, especially in a context of indexing. They map well onto a page/block model used for persisting data on the hard drives and provide a nice "jack…
design patterns
A collection of 12 posts
Data Loaders
Have you ever run into N+1 select problems with your GraphQL endpoint? If so, don't worry anymore. Today we're going to generalize and solve this kind of issues as well as discuss and explain the…
Writing high performance F# code
While this post is addressed to F# .NET developers, it introduces much wider concepts starting from hardware architecture to overall .NET runtime and JIT compiler optimizations. It shouldn't be a surprise - optimizing the application performance requires us…
Hybrid Logical Clocks
In this blog post we'll going to talk about timestamps. But to start with we need to answer the basic question: what are we using timestamps for? Two most common cases are: 1. We want to timestamp our…
Dealing with complex dependency injection in F#
Today, we're going to cover different ways of encapsulating capabilities and supplying them between functions using functional programming techniques which can be realized in F#. Managing code dependencies in object oriented languages in 2020 is pretty much one…
Thread safety with affine thread pools
In the previous blog post [https://www.bartoszsypytkowski.com/build-your-own-actor-model/] I've written about building a thread-safe state access by using actor programming model (as opposed to common practices requiring synchronization barriers with locks) without compromising performance coming with…
Build your own actors
What the actor model is all about? While actors are very broad term, in Software Engineering we comonly refer to them when speaking about languages (like Erlang or Pony) or frameworks (like Akka or Orleans). Here however we'll…
Design patterns: Circuit Breaker
Today I want to introduce a CircuitBreaker – one of the reactive design patterns, especially usefull in areas such as web services interop. To get you better understand on it’s concepts, lets consider following scenario: > You’ve built a…