El código de Vertx Sync se ejecuta varias veces

Estoy escribiendo un proyecto de service web usando Vertx web y verticles con lenguaje Kotlin. Cuando bash cambiar a Vertx Sync para dejar de entrar en el infierno de callbacks, algunas partes de mi código se ejecutan más de una vez sin una razón. Cuando se utiliza una estructura de callback antigua, no hay tal problema. Este es un código de muestra:

router.post("/layers").handler(fiberHandler { routingContext -> val request = routingContext.request() val response = request.response() response.putHeader("content-type", "application/json") val layer = gson.fromJson<Layer>(routingContext.bodyAsString, Layer::class.java) val layerResult = awaitResult<Message<UUID>> { vert.eventBus().send("PersistLayer", layer, it) } val viewResult = awaitResult<Message<Long>> { vert.eventBus().send("CreateView", layerResult.body(), it) } response.isChunked = true response.write(gson.toJson(viewResult.body())) response.statusCode = 201 }) 

Tan pronto como coloque la línea "PersisLayer", la siguiente línea se ejecutará varias veces. Al omitir esta línea, la siguiente línea se ejecuta una vez.

Aquí está el código de PersistLayer:

  vert.eventBus().consumer<Layer>("PersistLayer").handler { val layer = it.body() layer.sid = Generators.timeBasedGenerator().generate() entityManager.apply { transaction.begin() persist(layer) transaction.commit() } it.reply(layer.sid) }