Ian Macartney
Ian Macartney
@ianmacartney.bsky.social
Friendly engineer at Convex.dev
74 followers24 following61 posts
I've added new features to my middleware-esque helper library, and got inspired to write down everything I think about authorization: stack.convex.dev/authorization
A recent talk on developing the Agent Component: www.youtube.com/watch?v=YM9n...
Example: github.com/get-convex/a... Agent component: convex.dev/components/a... Rate Limiter: www.convex.dev/components/r...
Agent Component: convex.dev/components/a... Example code: github.com/get-convex/a... Changelog: github.com/get-convex/a... It one-ups persistent-text-streaming by syncing down only the deltas, not the full text, so you don't pay for bandwidth except proportional to the total length
“Simple Made Easy” is incredibly relevant nowadays where “easy” but not “simple” systems abound youtu.be/SxdOUGdseq4?...
Hosted playground: get-convex.github.io/agent/ Agent component / framework: github.com/get-convex/a... Playground directory: github.com/get-convex/a... Fun fact: It can target your @convex.dev backend if you if you expose the API, using API key auth. Statically hosted on GitHub pages
Run workflows reliably and asynchronously, using Inngest-style code. Why you need Durable Workflows for agentic systems: stack.convex.dev/durable-work... Workflow component: convex.dev/components/w...
I launched this today! Adding memory to AI SDK Agents with tools and RAG. Article on Agentic Workflow: stack.convex.dev/ai-agents Agent framework: convex.dev/components/a...
@anniesexton.com I may not have your skills, but I still had fun. One of these days I should graduate from the excalidraw center for kids who can't draw good and want to do other things good too
What I meant to say was "correctness & reliability" - mental blip when I first posted this. The reality is that while everyone's talking about how cool their app is in the happy path, actually handling failure is near impossible when you're using leaky abstractions.
Thoughts on about safety & reliability in the age of agentic flows and durable workflows: Details in 🧵, but tl;dr: 1️⃣ Isolate unreliable steps to safely retry 2️⃣ Model LLMs as ~idempotent & ~deterministic 3️⃣ Run asynchronously, subscribe to results Bonus: I made a thing
I'm working on handling [agentic] workflows in @convex.dev using Mastra to define them. Anyone interested in an alpha I made over the last week? Based on the architecture diagram I shared. It uses my durable Workpool component to execute them with parallelism limits, retries, etc. (Open Source)
Tiago asked about integrating reactflow.dev with @convex.dev so I made a demo last night. - realtime syncing flow chart - authorize reads and writes - validation of custom data payloads - optimistic updates for UX 🧑🍳💋 I'm proud of it, and thanks Tiago for the help! github.com/ianmacartney...
Tip: Use the `workpool` component to manage asynchronous workloads. - durable execution w/ onComplete handler - limit parallelism to be a nice neighbor - configure retries (w/ backoff, jitter, max attempts) - backlog & lag monitoring v0.2.1 out now www.convex.dev/components/w...
It'll even continue with retries if the server restarts midway through. And of course transactions will roll back & retry with optimistic concurrencty control / multi-version concurrency control per usual, since it's in @convex.dev
Local file sharing app (Open Source) Drag your files onto the site Drag them off on another computer git clone github.com/mikecann/our... cd ourfiles/ docker compose up open localhost:5173 by @mikeysee video in 🧵
repo: github.com/mikecann/our... video: youtube.com/watch?v=cZMV... self-hosting docs: github.com/get-convex/c...
So fun to work with Annie. She helped a ton, giving us some just-in-time feedback on self-hosting ergonomics. Really grateful that we met through @kentcdodds.com's #EpicWebCamp.
Convex is one of the coolest databases I've ever used, and now you can host one yourself! So obviously I had to try it out on Fly.io (spoiler, it was awesome) www.youtube.com/watch?v=YPCg...
I used AI to write a script to help me write AI evals to help AI write Convex code. Very meta 💡Each step uses RAG from previous evals Flow: 1. 🧑💻oneliner -> 🤖 task description -> 🧑💻 audit 2. 🤖 answer ->🧑💻 audit 3. 🤖 tests for answer ->🧑💻 audit 🔗 to evals 👀 & my script in 🧵
How it gets better at helping me (at each flow step): 1. I feed it task descriptions examples 2. I feed it task->answer examples 3. I feed it task+answer->test examples The examples are recent evals I've written, so the more I make the better it gets. github.com/get-convex/c...