Skip to main content

Posts

Showing posts from April, 2025

Restricting concurrent updates

Introduction Just jotting down some thoughts about what might be involved for addressing an issue being faced in my last project. The problematic situation Multiple sources of updates arriving in concurrently, being picked up for inclusion in an aggregated representation of the data. There are multiple worker processes, each with multiple worker threads that pick up changes and apply them without any awareness or consideration of what other work is underway. Potential solution approaches Debouncing of updates Using Redis as a store for keeping track of the identifier of records that are currently being processed has been successfully applied for reducing race conditions for updates of some attributes, so the pattern could be applied more broadly. The debouncing approach can be thought of as a type of transaction lock restricting access to the record that is required to contain the full representation of state. Partitioning workload processing This would most likely involve needing to s...

A self-imposed career break to spend more time with family

It's 2025 and I am back to blogging on my personal site, so what has been happening? For the past few years I have been posting some of my ponderings on another site - a blog that is internal to Atlassian, where I have been working as a senior software developer. That brings me around to why I am going to resume posting here. I have decided to dedicate my time to helping out with a senior family member, stepping completely away from work commitments for a while. Personal progress On my first fresh non-work day I have found myself unblocked from making progress on something that I have been comtemplating for a couple of months - I have purchased a more modern car. A 2020 hybrid seems like a nice step up from a 2007 regular petrol car. Family health progress Without going into any detail, the family member who had been facing some challenging medical needs has made a remarkable come-back. We are taking things one day at a time. Things to do Don't expect much technical output from...