Adam Berger (@abrgrbuilds) 's Twitter Profile
Adam Berger

@abrgrbuilds

๐Ÿš€ Building StateBacked.dev | Invincible workflows & live backends from simple state machines

ID: 1522716922072154128

linkhttps://app.statebacked.dev calendar_today06-05-2022 23:16:36

885 Tweet

298 Followers

519 Following

Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

It's so nice building on top of locally atomic transitions with eventually guaranteed (fast in practice), in-order event delivery between machine instances. This removes a whole class of easy mistakes to make. Event sourcing (ish) without the loss of a coherent flow.

It's so nice building on top of locally atomic transitions with eventually guaranteed (fast in practice), in-order event delivery between machine instances.

This removes a whole class of easy mistakes to make.

Event sourcing (ish) without the loss of a coherent flow.
Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

Just open-sourced our GitHub bot for visualizing XState state machines (hint: it runs on State Backed). Check it out at github (dot) com/statebacked/github-visualizer-bot ๐Ÿ™ƒ

Just open-sourced our GitHub bot for visualizing XState state machines (hint: it runs on State Backed).

Check it out at github (dot) com/statebacked/github-visualizer-bot

๐Ÿ™ƒ
Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

Save user settings safely without wasting time on undifferentiated backend work. Simple, open source React hook from State Backed Headless.

Save user settings safely without wasting time on undifferentiated backend work.

Simple, open source React hook from State Backed Headless.
Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

Working on today: indexing machine instances by any values from the machine's context. This is the crucial step needed for State Backed to be a great store for any online data. After this: if it's suitable for DynamoDB, it will work (we think better) in State Backed.

Working on today: indexing machine instances by any values from the machine's context.

This is the crucial step needed for State Backed to be a great store for any online data.

After this: if it's suitable for DynamoDB, it will work (we think better) in State Backed.
Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

e Exactly! I'm really excited about this. It unlocks all of the remaining use cases I can think of. DBs today so a great job at helping you understand your data at rest. Our goal is a "DB" that makes it really easy to understand how your data *evolves*.

Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

The plan for machine instance indexes (going with indexes over indices, after much deliberation๐Ÿ˜ƒ): 1. Specify index names at machine creation time or as an update to an existing machine 2. Machine versions specify a map from index name to JSON path pointing into machine context

Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

One of the best things about the Clojure community: sometimes they decide that a library is complete, having achieved the purpose it was designed for. For React, that point came some time around 2018. From then on, we should have been building on top of it but not within it.

Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

๐ŸŽ‰ Indexing by any property in a machine instance's context and queries for matching instances just dropped in State Backed! With this, State Backed can support any backend use case I can think of. What example apps should we build???

๐ŸŽ‰ Indexing by any property in a machine instance's context and queries for matching instances just dropped in State Backed!

With this, State Backed can support any backend use case I can think of.

What example apps should we build???
Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

Serverless is so passรฉ. Data store-less is so hot right now. Access persistent data like it was in-process. Let the platform handle the rest.

Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

Unsurprisingly, we thought about interfaces, upgrades & change *a LOT* in building State Backed. Upgrading individual machine instances independently unlocks a huge amount of safety. Machine interfaces consist of events (inbound) and state, tag, and public context (outbound).

Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

If you have code that runs on clients and servers, the world doesn't care if you put your code in one file or 30: you have a distributed system and the rules of distributed systems apply. Rules: 1. Things fail 2. Components upgrade independently (compatibility matters)

Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

2 days to build, test, and deploy a major new feature affecting DB, untrusted code-running, and API layers. Also 2 days: upgrading dependencies in a 1 year old rust library (ts-bindgen). Pretty convinced Unison | @unison-lang.org on bsky function-level versioning is the right way out of this mess.

Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

It was great chatting with Lee Atchison on the Software Engineering Daily podcast about State Backed and the backend state machine architecture we're so excited about. Thanks so much for having me! ๐Ÿ“ป Listen to our conversation here: softwareengineeringdaily.com/2023/11/16/buiโ€ฆ

Adam Berger (@abrgrbuilds) 's Twitter Profile Photo

State Backed is a great AI orchestrator (we've been building a *ton* of AI-focused apps with it ourselves). Now, it's even better: we're increasing the timeout for each state machine step to 90 seconds.

State Backed is a great AI orchestrator (we've been building a *ton* of AI-focused apps with it ourselves). Now, it's even better: we're increasing the timeout for each state machine step to 90 seconds.