-
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.
-
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.
-
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
EventLogandBlobStoreinterfaces with reference implementations. Now it’s the turn of background workers. -
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.
-
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.
-
React Spreadsheet
React Spreadsheet: Optimistic Update
I recently made my spreadsheet data interface more explicitly asynchronous. I naively updated
VirtualSpreadsheetto use the newly asynchronoussetCellValueAndFormatAPI. 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. -
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.
-
Event Sourced
React Spreadsheet
Asynchronous Spreadsheet Data
Last week’s tracer bullet development showed that I needed to make my
SpreadsheetDatainterface more explicitly asynchronous. -
InfiniSheet
Event Sourced
React Spreadsheet
Event Sourced Spreadsheet Data
I’ve been working on my scalable spreadsheet project from opposite ends. So far, most of my focus has been on the front end. I’ve created a virtualized React spreadsheet component that can scale to trillions of rows and columns. The component accesses spreadsheet data via a SpreadsheetData interface based on React’s external store interface.
-
InfiniSheet
Asynchronous Event Log
I’ve created an event log interface and reference implementation. The interface exposes all the functionality I’ll need with a minimal API. There’s enough of an abstraction layer that it should allow for multiple real implementations.