Rain Paharia
๐ค SpeakerAppearances Over Time
Podcast Appearances
And so, you know, you update the server first and you have like this DAG of,
dependencies that you update.
It's just like this, you know, really well-constructed system.
It's pretty great, right?
So one of the issues we ran into is that as we gained experience with the system, we were having trouble figuring out how, like, you know, you have all these different versions.
And so you have, like, a type, right?
And that type has the same name, but it has different, like, fields, for example.
Or, like, you know, maybe one of the subfields is different.
How do you actually store those in the repo?
It sounds like a simple problem, but this actually blows up and becomes this incredibly complicated problem with many different factors involved.
Again, this is one of those things where it's like this combination of human and LLM work where I spent a bunch of time prototyping a bunch of things and coming up with an approach that works and that satisfies all of the hard constraints and also as many of the soft constraints as we can.
And, and so, you know, this was like a lot of work.
And then, um, one of the, one of the interesting things that I found really useful for LLMs is that what I did was I ended up essentially like compiling the set of things that, you know, the final state we want to get to and like writing it out as a set of instructions that
both a human and an llm can follow and so in this guide uh that i dropped a link to uh this is rft 619 and in this guide it is in section um 5.1 and so this 5.1 is kind of this initial migration right and so again like you know spent like a couple weeks working on this on on like this whole rft
And then what I did was like, okay, you know, I'm like, I just kind of fed this guide into the LLM and, you know, I told it to like migrate a small repo, right.
One of the, one of our smaller APIs.
And it just did that in one shot.
So this was like, you know, not a very big API.