...

/

Understanding Event Loop

Understanding Event Loop

Learn how to handle a huge number of events using the Event Loop design pattern.

Event Loop design pattern

The goal of the Event Loop design pattern is to continuously check for new events in a queue, and each time a new event comes in, to quickly dispatch it to someone who knows how to handle it. This way, a single thread or a very limited number of threads can handle a huge number of events.

In the case of web frameworks such as Vert.x, events may be requests to our server.

To understand the concept of the Event Loop better, let’s go back to our server code in the App.kt file and attempt to implement an endpoint for deleting a cat:

val db = Db.connect(vertx)
router.delete("/:id").handler { ctx ->
    val id = ctx.request().getParam("id").toInt()
    db.preparedQuery("DELETE FROM cats WHERE ID = $1")
        .execute(Tuple.of(id)).await()
    ctx.end()
}

This code is ...