Devlog 6
Continuing x44 after 2 months. I was very busy with school work.
Coming back to it after a long time, i am seeing that my initial design had the Rust build worker doing too much. The CF Worker pushed a job to a queue and sent a ping to the VPS over HTTP. The Rust build worker then had to authenticate against CF’s REST API, pull the queue message, execute the build, upload artifacts to R2, and acknowledge the message. This over complicated the system.
The Architectural Change
Instead of the rust build worker pulling jobs queues after the ping, I made the control-plane worker both queue producer and queue consumer.
Now the Pipeline Looks like this:-
- When a project is created or a git push occurs the Worker records a
queuedrow in D1 and pushes the build configuration into the queue. - The Worker then takes 1 job from the queue and send the build configuration to the Rust build worker, If a build is running CF natively waits for it to be acknowledged-no custom logic for it
- Then the Rust build worker finally runs the build and upload the build output to R2.[I acknowledge the job even if the build fails to prevent retry loops]
No frontend changes, see my IDE
