Combinando proto buffers do Google com Jersey / JAX-RS

Atualmente, tenho um serviço da Web RESTful com pontos de extremidade expostos via Jersey / JAX-RS:

@Path("/widgets")
public class WidgetResource {
    @GET
    List<Widget> getAllWidgets() {
        // gets Widgets somehow
    }

    @POST
    Widget save(Widget w) {
        // Save widget and return it
    }
}

Uso Jackson para serializar / desserializar meus POJOs em JSON, e meu serviço responde e envia de volta meus POJOs comoapplication/json.

Agora, estou procurando possivelmente usar buffers de protocolo do Google (ou uma tecnologia equivalente) para ajudar a compactar / otimizar a comunicação entre cliente e serviço, pois o texto JSON / é bastante volumoso / desnecessário.

Na realidade, eu tenho um grande back-end que consiste em uma arquitetura de "microsserviço"; dezenas de serviços REST se comunicando; é por isso que estou procurando otimizar as mensagens enviadas entre todos eles.

Então eu pergunto: é possível ainda fazer com que Jersey / JAX-RS atenda meus pontos de extremidade de serviço, mas estripar o material Jackson / JSON e substituí-lo por buffers de protocolo do Google? Em caso afirmativo, como será esse código?

questionAnswers(1)

yourAnswerToTheQuestion