The Candid Startup
Posts Topics Projects About Contact

Posts

Every post from The Candid Startup

« Prev 1 2 3 4 16 Next »
  • Aug 25, 2025 Event Sourced Front End

    Snapshot Benchmarking with Vitest

    The framework for our event sourced spreadsheet is in place. Entries are being written to the log, snapshots are created at regular intervals, clients start by reading the most recent snapshot and then following along as the log is updated. All this has been done tracer bullet style, with simple code that is largely unoptimized and not scalable.

  • Aug 18, 2025 Event Sourced

    Snapshot Completion

    We don’t yet handle the case where a snapshot completes when a client is already up and running. The snapshot could have completed because this client triggered it, or another client did. How can clients find out that a snapshot workflow has completed? They’ll pick up the new snapshot when they start up, but a long running client could end up with a huge log segment unless there’s some kind of explicit notification.

  • Aug 11, 2025 Event Sourced

    Tracer Bullet Snapshots

    It’s finally time to create snapshots as my event sourced spreadsheet’s event log grows. It seemed like I was never going to get here. There’s a laundry list of pre-work that I needed to complete first.

  • Aug 4, 2025 Event Sourced

    Infinisheet Cell Map

    I have all the bits of infrastructure needed to start saving snapshots of my event sourced spreadsheet. The source of truth for the spreadsheet content is in an event log. I’ve defined a Blob Store interface to serialize snapshots as blobs of data together with a Workers interface to create snapshots as a background task.

  • Jul 21, 2025 Event Sourced

    Wiring up the Blob Store and Workers

    Now that I have interfaces and reference implementations for a Blob Store and Workers, we can try to wire them up to our tracer bullet prototype.

  • Jul 14, 2025 InfiniSheet

    InfiniSheet Workers

    I’m building an event sourced spreadsheet on a foundation of an event log, a blob store and background workers. I’ve defined EventLog and BlobStore interfaces with reference implementations. Now it’s the turn of background workers.

  • Jul 7, 2025 InfiniSheet

    InfiniSheet Blob Store

    We left our scalable cloud spreadsheet project in a good place. We used tracer bullet development and after a few iterations got an end to end simulation running against a reference implementation of an event log.

  • Jun 30, 2025 Front End

    Unit Test Code Reuse with Vitest

    I’m a strong believer in unit tests. I try to get close to 100% code coverage with my tests. Which means I have a lot of unit test code. Normally, you try to minimize duplication, and Don’t Repeat Yourself. That has it’s own special challenges when it comes to unit tests.

  • Jun 23, 2025 React Spreadsheet

    React Spreadsheet: Optimistic Update

    I recently made my spreadsheet data interface more explicitly asynchronous. I naively updated VirtualSpreadsheet to use the newly asynchronous setCellValueAndFormat API. After discovering that the user experience was horrible if there was any latency, I did a deep dive into best practice for handling asynchronous updates in React.

  • Jun 16, 2025 Front End

    Asynchronous React

    Last time, I naively updated my spreadsheet frontend component to use an asynchronous update API. Everything looked like it was working, until I added some latency to the API’s response. The resulting user experience was terrible.

« Prev 1 2 3 4 16 Next »