This is what we call a synchronous and tightly coupled system. Synchronous: Everything follows an order (get request -> send to worker -> get response back from worker -> send response to client -> next request) while the worker is executing code, the server is idle. Tightly coupled: The server is heavily dependent on the worker to fulfill its responsibility of sending back responses (it will only send a response to the client until it receives it from the worker). — — — — — — — — — — Less Robust: If the worker fails, the server will also fail. This means that if one part of our system, such as the code execution engine, fails, then system cannot serve clients’ requests. It cannot cache or store them so that when code execution engine is up, it can execute those requests. In this scenario, it will face complete downtime. — — — — — — — — — — — — Less scalable: Synchronous systems cannot handle too much load at a time.