A while back I had shared this story as a message in Slack with some colleagues. I was encouraged to publish it but never had a chance to do so until now. I hope you enjoy it :). My Teacher I’m currently reading this article by Martin Fowler on Continuous Integration (which I would always recommend anyone to read)! His opening story about the dangers of integrating parts of software reminded…
This is the fourth part in an on-going blog series about building an event sourcing system in Ruby using AWS Serverless technologies. The persistence of values and complex objects is essential to modern applications. Applications that take tremendous care of how their objects actually pass in-and-out of memory tend to perform far better than those that don’t - especially in the face of…
This is the third part in an on-going blog series about building an event sourcing system in Ruby using AWS Serverless technologies. It was originally part of Aggregate Persistence. It grew a little bit too large for my tastes and I opted to separate this portion into it’s own article. Enjoy! In event sourcing, events are stored in a database called an event store. We’ll design one using AWS…
This is the second part in an on-going blog series about building an event sourcing system in Ruby using AWS Serverless technologies. Aggregate design is at the center of how event sourcing systems operate. They encapsulate our events into a greater meaning than the sum of its parts. We will implement our ShoppingCart aggregate, the events it publishes, and how these events are applied to alter…
This is the first part in an on-going blog series about building an event sourcing system in Ruby using AWS Serverless technologies. The Idea of a Shopping Cart The idea of a Shopping Cart gives us a nice foundation for building an event sourced system. It is a familiar concept and introduces a type of temporal model, which helps solves problems with our data changing over time. For example, when…
Developing software that solves complex problems can be challenging at times. Often, the literature around solving these problems makes it even harder to see the solution through the trees! This blog series aims at being a pragmatic take on building an event sourcing system by leveraging AWS Serverless technologies. It is by no means a complete guide but provides concrete patterns that you can use…
Normally, I try to write tests for every project I participate in, even personal projects that never see the light of day! Yet, every once in a while, I find myself working in an environment where adding new dependencies isn’t so straightforward or tools like RSpec are a bit too bulky. In such cases, I quickly produce a few functions that allow me to execute automated tests. In Ruby,…
EDIT: After digesting what I have learned from Golang and this project, I have largely rebuilt RygelDB. I’ll update this blog article once I find the time. A colleague once said to me, “Let’s learn Rust and build a NoSql Database! It’s easy!” Through group learning sessions, we did learn Rust but we never did build that database. Unfortunately, the precious time we…