Frontend developers take hot-reload for granted. Edit a component, the browser updates in milliseconds. No restart, no deploy, no waiting.
Data engineers have the opposite experience. Change a schema, and you're running a migration script, restarting a connector, hoping nothing downstream breaks, manually verifying the column appeared.
Hot-reload for schemas should work like this: you edit a type definition in your IDE, and within seconds the database table has the new column, the streaming topic reflects the change, and the API validates against the updated schema. No commands. No migrations to write. No connectors to restart.
This is what moose dev does. You change a TypeScript interface, the infrastructure updates while the dev server is running. Add a field — column appears. Remove a field — migration runs. Change a type — the pipeline adjusts.
The implementation is straightforward in principle: the schema definition is the source of truth, and the runtime continuously reconciles infrastructure state against it. The interesting engineering is making reconciliation fast enough to feel like hot-reload rather than a deployment.
satyampsoni•1h ago
Data engineers have the opposite experience. Change a schema, and you're running a migration script, restarting a connector, hoping nothing downstream breaks, manually verifying the column appeared.
Hot-reload for schemas should work like this: you edit a type definition in your IDE, and within seconds the database table has the new column, the streaming topic reflects the change, and the API validates against the updated schema. No commands. No migrations to write. No connectors to restart.
This is what moose dev does. You change a TypeScript interface, the infrastructure updates while the dev server is running. Add a field — column appears. Remove a field — migration runs. Change a type — the pipeline adjusts.
The implementation is straightforward in principle: the schema definition is the source of truth, and the runtime continuously reconciles infrastructure state against it. The interesting engineering is making reconciliation fast enough to feel like hot-reload rather than a deployment.
Would love to know your feedbacks