The Candid Startup
Posts Topics Projects About Contact

Posts

Every post from The Candid Startup

« Prev 1 9 10 11 15 Next »
  • Sep 18, 2023 Cloud Architecture Databases

    ACID! - Atomicity, Consistency, Isolation, Durability

    There are lots of things you need to worry about when building a cloud application. Often the hardest problems only appear as you scale up, when multiple clients interact with the same data at the same time.

  • Sep 11, 2023 Blog

    One Year Anniversary

    My first “proper” post to this blog was on September 5th 2022 (I don’t count the test post from August 2nd). A week later, I retired from my role at Autodesk. It’s hard to believe that I’ve been doing this for a year.

  • Sep 4, 2023 Databases Front End

    Event Sourced Database Grid View

    When we started on this journey, I told you that there was an easy way and a hard way to implement a database backed grid view. I then spent the next six posts in this series taking you through different variations of the hard way.

  • Aug 28, 2023 Gear

    AlphaESS Smile 5 Home Battery Storage System

    I’ve wanted to get a home battery storage system for a while. We had solar panels installed back in 2009. On a sunny day I could see that we were generating much more electricity than we needed. The excess power is exported to the grid for a laughably low rate. Then when the sun goes down I can buy the power back from the grid at an extortionately high rate.

  • Aug 21, 2023 Spreadsheets AWS

    Eventual Consistency for an Event Sourced Spreadsheet

    Last time we looked at general approaches to ensuring eventual consistency in the cloud. Now it’s time to apply what we’ve learnt to the case of my Event Sourced Cloud Spreadsheet. Previously, I went into some detail on how to implement an Event Log using DynamoDB. Long story short, there are some operations that involve multiple writes and some that need to trigger side effects.

  • Aug 11, 2023 Cloud Architecture

    Ensuring Eventual Consistency

    Remember how we used to build web apps? A database, some app servers and a load balancer. What we’d disparagingly call a Monolith today.

  • Aug 7, 2023 Spreadsheets Databases AWS

    Implementing a Spreadsheet Event Log on DynamoDB

    In the distant past, before I got sucked into a seemingly never ending series on databases, I said that I was going to start formalizing the format for my cloud based, serverless, event sourced spreadsheet. I realize now that I’ve said very little on how I’m going to implement the central component of my spreadsheet, the event log.

  • Jul 31, 2023 Databases

    DynamoDB Database Grid View

    DynamoDB is AWS’s flagship, serverless, horizontally scalable, NoSQL database. The work that ultimately led to the release of DynamoDB in 2012, started in 2004. Amazon was growing rapidly and finding it hard to scale their relational databases. The development of DynamoDB was driven by the observation that 70% of Amazon’s queries were key-value lookups using a primary key to return a single row. Another 20% returned a set of rows from a single table.

  • Jul 24, 2023 Databases

    MongoDB Database Grid View

    Last time we dipped our toes into the waters of schemaless databases by using a JSONB column in Postgres to store a set of custom fields. After a few attempts we got it working. However, it didn’t offer many benefits compared with the denormalized relational database optimizations we previously tried, while bringing in plenty of additional friction of its own.

  • Jul 17, 2023 Databases

    JSON Relational Database Grid View

    When we aggresively denormalized our Grid View relational database, we were able to achieve our aim of a single table solution. However, it came with a lot of unintended consequences. In order to support up to 100 custom fields of each type, we added 400 custom field columns to our issue table, most of which were NULL. In theory the overhead should have been minimal. In practice, we ran into all kinds of implementation and operational problems.

« Prev 1 9 10 11 15 Next »