API multi thread

Boa tarde pessoal, tudo bem?

Pretendo criar uma API a partir de um script em R, porém estou com receio de colocar ela em produção utilizando o plumber, por ele ser single thread (assim como o R).

Alguém já precisou fazer uma API que na teoria pode ser que exista muito acessos simultâneos? Estou procurando por alternativas para criar uma API multi thread, mas utilizando um rscript para fazer os “cálculos”.

Até o momento achei um post falando sobre utilizar R Server com chamadas em Java: https://medium.com/@JB_Pleynet/how-to-do-an-efficient-r-api-81e168562731

Qualquer sugestão é bem vinda,
obrigado!

Num trabalho recente coloquei uma API multithread em producao usando https://restrserve.org/ que é uma alternativa ao plumber. Porém uma semana depois eu li a noticia de que o {plumber} 1.0.0 tinha sido lançado com suporte a multithread https://www.rplumber.io/news/index.html

2 curtidas

Na versão 1.0 do {plumber} lançada recentemente existe suporte nativo para execução assíncrona e em paralelo. Veja a referência e as vignettes indicadas no changelog: https://www.rplumber.io/news/index.html#plumber-router

2 curtidas

Caraca, que legal!

As discussões que tinha lido sobre plumber era tudo antiga, que bom que atualizaram o plumber.
Vou olhar o restserve também, nunca li sobre.

Que bom que hoje temos opções.

Obrigado Athos e Caio!

Contribuindo um pouco pra discussão, estou vendo um talk que aconteceu no rconf2020 em janeiro: https://rstudio.com/resources/rstudioconf-2020/we-re-hitting-r-a-million-times-a-day-so-we-made-a-talk-about-it/

No talk elas trazem a ideia de utilizar ou o restserver, ou controlar requests pelo kubernetes, criando cópias da sua API e orquestrando.

3 curtidas