| ▲ | dneighman 3 hours ago | |||||||
The schema-driven development isn't really about a particular format tbh. It's a set of principles that can be applied to any development process. Decide on the shape, then derive the rest. Protobufs fit into this category. I really loved protobuf in the past. I've used them at Square and implemented gRPC at Opendoor. Protobufs have been really helpful with the runtime compiled codegen. They are heavy though, and there are some issues. Getting a data schema to go all the way from the backend to the front end is challenging with Protos. You can use proto over json but the clients on the fe are not well looked after. You have to fight the tooling (or add copious amounts of it) to have the same contracts flow all the way through your code. In my experience, protos work well inside a company for backend, but they're not really made for public use (agent to agent) or runtime use. Even with the strong contracts in protobufs, which I've personally seen improve teams using them! There's still the questions... but, what does X or Y mean!? One of the issues with writing meaning into your proto files in terms of field or message options is that only the authors can annotate it for the authors purposes. What we need is a way for authors to write it an annotate it, but _also_ for humans and agent consumers to add their own meaning to the schemas, fields and uses. Use-cases, gotachas, relationships, service annotations. We've been re-building slightly different versions of the same things in each company / application, and every time we do, the reason for a field, the meaning is usually buried in email or slack threads, remembered only by "those who came before". In the age of agents where they need context, that type of tribal knowledge is holding us back. | ||||||||
| ▲ | ziyadmir 2 hours ago | parent [-] | |||||||
Interesting — is the annotation graph the actual product, and why key it on objects rather than workflows? In any case, I agree that this graph has network effects and compounds. Maybe what we want is for agents to both consume annotations and write them back into an open annotation registry that overlays a schema registry? | ||||||||
| ||||||||