Comments (5)
Oi, pessoal! Blz? @zanaca, você tem toda razão, o uso interno/externo da API não seria um limitador. Quando fiz essa pergunta, na verdade, foi pra eliminar a possibilidade de ser uma API pública, utilizada por terceiros. Quando a solução exige certa legibilidade do payload (em JSON, principalmente) e facilidade para integrar com outros sistemas a solução REST tende a vencer facilmente essa disputa RPC vs REST.
Sobre o gRPC, tem pouquíssimo tempo que comecei a sujar minhas mãos com isso. Estou trabalhando numa POC também e um dos desafios que ainda não pensei como resolver é a questão da escalabilidade (ELB), como foi citada no artigo do SN. A propósito, meu caso é específico para clientes que estabelecem conexões permanentes com o servidor.
@bernardolm , tudo certo? Segue abaixo meus comentários sobre o artigo:
-
Lack of HTTP 1.1 support: Entendi que eles decidiram adicionar o suporte a HTTP 1.1 para resolver, principalmente, questões de compatibilidade com LBs. Porém, essa não é a única solução para esse problema e o custo dela foi bem caro, na minha opinião. Perdeu-se o suporte a streaming e fiquei na dúvida se a full-duplex (envio e recebimento simultâneo) e a "Server Push" também!
-
Large runtime with breaking changes: Não venho acompanhando a evolução do gRPC e também ainda não analizei o footprint da minha POC. Realmente, ter que utilizar a mesma versão do gRPC runtime nos clientes e servidores pode ser um soco no estômago. Preciso verificar melhor e ver como é na prática.
-
Bugs due to the complex runtime: Ok, ponto para o Twirp pela sua simplicidade. O que se perdeu com isso? A performance é a mesma?
-
Difficulty working with binary protobuf: Legal! Protobuf codificado em JSON ajuda a resolver o que citei inicialmente sobre o uso da API por terceiros. Mas vale lembrar que o "binary protobuf" é bem compactado e pode reduzir drasticamente o uso da banda.
Resumindo, ainda não tinha ouvido falar sobre o Twirp e minha opinião precoce é que ele, de fato, é uma solução melhor que o gRPC para o Twitch mas não parece ser uma solução com suporte mais abrangente a outros casos de uso - principalmente os que fazem uso dos benefícios do HTTP/2. Entendo também que o Twirp deve ter levado um bom tempo pra ser desenvolvido e desde então pode ser que o gRPC já tenha resolvido algumas dessas questões. Obviamente, eles vão puxar sardinha pro lado deles. Afinal, estão anunciando sua ferramenta! :)
Enfim, gostaria de poder ter contribuído mais. Teria que entender qual é a realidade do HU e quais são as necessidades para, aí sim, poder opinar melhor sobre alguma decisão de escolha entre uma solução ou outra. E espero que essa oportunidade chegue logo!! Até lá, continuarei estudando mais.
Estou curioso pra saber a opinião de vocês sobre essas questões! :)
from challenge-bravo.
Essa é uma boa pergunta! Mas por que seria um limitador o uso interno da API para ir para o protobuf?
O @bernardolm está montando um POC de uso do RPC.
from challenge-bravo.
O gRPC realmente seria mais transparente para fazer a mudança, mas tem uma turma que não têm bons olhos para o gRPC...
from challenge-bravo.
Fala @fabriciopf, tudo bem?
Esses pontos que Spencer Nelson, você consegue comentar?
from challenge-bravo.
👍
from challenge-bravo.
Related Issues (12)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from challenge-bravo.