{"id":40656,"date":"2026-10-19T14:29:10","date_gmt":"2026-10-19T17:29:10","guid":{"rendered":"https:\/\/blog.locaweb.com.br\/?p=40656"},"modified":"2026-10-19T14:29:12","modified_gmt":"2026-10-19T17:29:12","slug":"codigo-binario-serializacao-custo-infraestrutura","status":"publish","type":"post","link":"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/codigo-binario-serializacao-custo-infraestrutura\/","title":{"rendered":"C\u00f3digo bin\u00e1rio na pr\u00e1tica: o que a escolha entre JSON e formatos bin\u00e1rios custa na sua infraestrutura"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Em 2023, o time de engenharia do LinkedIn trocou JSON por Protobuf em parte da stack do Rest.li. O resultado: at\u00e9 60% de redu\u00e7\u00e3o na lat\u00eancia P99 sob carga pesada, segundo o <a href=\"https:\/\/engineering.linkedin.com\/blog\/2023\/linkedin-integrates-protocol-buffers-with-rest-li-for-improved-m\">blog de engenharia da pr\u00f3pria empresa<\/a> (acesso em out\/2026). Esse n\u00famero \u00e9 s\u00f3lido o bastante para justificar a migra\u00e7\u00e3o de um framework usado por dezenas de milhares de endpoints em produ\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o foi um exerc\u00edcio acad\u00eamico sobre zeros e uns. Foi uma decis\u00e3o de arquitetura que, multiplicada pelo volume de requisi\u00e7\u00f5es da plataforma, se traduziu em menos CPU gasta por chamada e menos banda trafegada por segundo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Toda vez que seu sistema serializa um objeto para enviar pela rede, ele toma essa mesma decis\u00e3o em miniatura. JSON virou o padr\u00e3o por comodidade: \u00e9 texto, \u00e9 leg\u00edvel, qualquer ferramenta abre. Texto, por\u00e9m, tem custo de processamento que formatos bin\u00e1rios n\u00e3o t\u00eam. Esse custo aparece em tr\u00eas lugares que afetam diretamente sua conta de infraestrutura: CPU de parse, tamanho de payload e lat\u00eancia de rede.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este artigo trata bin\u00e1rio como ele \u00e9 hoje: uma vari\u00e1vel de custo e performance em produ\u00e7\u00e3o, n\u00e3o uma curiosidade de fundamentos de computa\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Por que texto custa mais para a m\u00e1quina processar?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">JSON representa cada n\u00famero como uma sequ\u00eancia de caracteres ASCII. O inteiro 1000000 vira sete bytes de texto. O parser precisa ler caractere por caractere, converter para um tipo num\u00e9rico e validar sintaxe (chaves, aspas, v\u00edrgulas) no caminho. Um formato bin\u00e1rio como Protobuf codifica o mesmo valor em um campo de tamanho fixo ou varint, sem etapa de convers\u00e3o textual.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A diferen\u00e7a fica vis\u00edvel em benchmark direto. Um comparativo publicado no <a href=\"https:\/\/proandroiddev.com\/proto-vs-json-when-to-use-which-and-why-525256a4d4ed\">ProAndroidDev<\/a> mediu payloads de Protobuf cerca de tr\u00eas vezes menores que o equivalente em JSON, com serializa\u00e7\u00e3o mais de dez vezes mais r\u00e1pida em payloads pequenos. Outro teste, rodado com bibliotecas Ruby populares, <a href=\"https:\/\/sia.hackernoon.com\/protobuf-vs-json-in-the-ruby-world\">registrou o parser bin\u00e1rio entre 4 e 8 vezes mais compacto em bytes e sensivelmente mais r\u00e1pido na codifica\u00e7\u00e3o<\/a>, variando conforme a complexidade do payload.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O ganho n\u00e3o \u00e9 uniforme. Para dados num\u00e9ricos, como IDs, timestamps e m\u00e9tricas, Protobuf costuma produzir payloads de 4 a 5 vezes menores que JSON, por causa da codifica\u00e7\u00e3o varint para inteiros. J\u00e1 para strings longas a vantagem de tamanho encolhe, porque o texto em si j\u00e1 \u00e9 compacto por natureza.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Onde isso aparece na conta de infraestrutura<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CPU e banda s\u00e3o recursos cobrados em qualquer VPS ou cloud. Payload 3x menor em uma API que recebe milh\u00f5es de chamadas por dia significa 3x menos dados trafegando pela rede todo santo m\u00eas. Parse mais r\u00e1pido significa menos ciclos de CPU por requisi\u00e7\u00e3o, o que em sistemas sob carga pesada se traduz em suportar mais tr\u00e1fego com o mesmo hardware, ou em precisar de menos inst\u00e2ncias para sustentar o mesmo volume.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso pesa mais em alguns pontos da arquitetura do que em outros:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Comunica\u00e7\u00e3o interna entre microsservi\u00e7os<\/strong>: alto volume, baixa necessidade de legibilidade humana. \u00c9 o cen\u00e1rio cl\u00e1ssico onde gRPC com Protobuf substitui REST com JSON.<\/li>\n\n\n\n<li><strong>Filas de mensagens<\/strong>: sistemas como Kafka carregam serializa\u00e7\u00e3o bin\u00e1ria internamente justamente para reduzir overhead em pipelines de alto throughput.<\/li>\n\n\n\n<li><strong>Replica\u00e7\u00e3o e sincroniza\u00e7\u00e3o de dados<\/strong>: bancos de dados usam formatos bin\u00e1rios pr\u00f3prios para replicar estado entre n\u00f3s sem pagar o pre\u00e7o de parsing textual a cada opera\u00e7\u00e3o.<\/li>\n\n\n\n<li><strong>APIs com alta frequ\u00eancia de chamada<\/strong>: aplicativos m\u00f3veis que sincronizam dados constantemente sentem o payload menor tanto em performance quanto no consumo de dados do usu\u00e1rio.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>O que voc\u00ea perde ao trocar JSON por um formato bin\u00e1rio?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nenhuma decis\u00e3o de engenharia vem sem contrapartida, e o teste de adequa\u00e7\u00e3o aqui \u00e9 direto: se a troca custa mais em complexidade do que economiza em performance, n\u00e3o vale a pena.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Legibilidade humana.<\/strong> JSON abre em qualquer editor de texto e qualquer pessoa entende o que est\u00e1 vendo. Um payload Protobuf \u00e9 uma sequ\u00eancia de bytes que exige o schema .proto correspondente para ser interpretado. Debugar um payload bin\u00e1rio em produ\u00e7\u00e3o, sem a ferramenta certa, \u00e9 bem mais dif\u00edcil do que abrir um JSON e ler direto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Fric\u00e7\u00e3o de desenvolvimento.<\/strong> Protobuf exige definir um schema, compilar esse schema para c\u00f3digo de cada linguagem envolvida, e manter esse processo de build sincronizado entre times. JSON n\u00e3o pede nada disso: \u00e9 serializar o objeto e seguir em frente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Compatibilidade com cliente web.<\/strong> JavaScript tem JSON.parse() e JSON.stringify() nativos no navegador. Qualquer formato bin\u00e1rio no front-end exige uma camada extra de decodifica\u00e7\u00e3o que simplesmente n\u00e3o \u00e9 necess\u00e1ria com JSON.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A raz\u00e3o real para adotar Protobuf raramente \u00e9 s\u00f3 o ganho bruto de velocidade. \u00c9 a defini\u00e7\u00e3o de schema compartilhado entre linguagens diferentes, que elimina ambiguidade sobre o formato dos dados entre times que n\u00e3o compartilham a mesma stack.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Quando faz sentido manter JSON<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>APIs p\u00fablicas<\/strong> consumidas por terceiros que voc\u00ea n\u00e3o controla. For\u00e7ar um formato bin\u00e1rio aumenta a barreira de integra\u00e7\u00e3o sem necessidade.<\/li>\n\n\n\n<li><strong>Configura\u00e7\u00e3o e arquivos que humanos precisam editar manualmente.<\/strong> Ningu\u00e9m quer abrir um bin\u00e1rio para mudar uma flag.<\/li>\n\n\n\n<li><strong>Times pequenos ou MVPs<\/strong> onde o volume de tr\u00e1fego ainda n\u00e3o justifica a complexidade adicional de schema e build.<\/li>\n\n\n\n<li><strong>Qualquer sistema onde debugabilidade em produ\u00e7\u00e3o pesa mais que economia de CPU.<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Checklist de decis\u00e3o<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de trocar o formato de serializa\u00e7\u00e3o de um sistema em produ\u00e7\u00e3o, tr\u00eas perguntas concretas substituem a intui\u00e7\u00e3o:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Qual o volume real de requisi\u00e7\u00f5es?<\/strong> Payload 3x menor em um sistema com baixo tr\u00e1fego n\u00e3o move a agulha. Em alto volume, multiplicado pelo n\u00famero de chamadas, o ganho acumulado em banda e CPU fica vis\u00edvel na fatura.<\/li>\n\n\n\n<li><strong>Quem consome essa API, humano ou m\u00e1quina?<\/strong> Comunica\u00e7\u00e3o m\u00e1quina-a-m\u00e1quina (microsservi\u00e7os, filas, replica\u00e7\u00e3o) tolera bem formato bin\u00e1rio. Interface consumida por humanos ou por terceiros externos pede a legibilidade do texto.<\/li>\n\n\n\n<li><strong>Sua equipe tem capacidade de manter o processo de schema?<\/strong> Protobuf exige defini\u00e7\u00e3o de .proto, gera\u00e7\u00e3o de c\u00f3digo e sincroniza\u00e7\u00e3o entre times. Se essa estrutura n\u00e3o existe hoje, o custo de implementa\u00e7\u00e3o pode superar o ganho de performance no curto prazo.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">A resposta raramente \u00e9 bin\u00e1rio em tudo ou JSON em tudo. Sistemas de produ\u00e7\u00e3o maduros costumam combinar os dois: JSON na borda, onde humanos e integra\u00e7\u00f5es externas interagem, formato bin\u00e1rio onde volume e performance decidem a conta de infraestrutura no fim do m\u00eas. Essa divis\u00e3o s\u00f3 funciona quando h\u00e1 uma base de schema bem versionada sustentando a comunica\u00e7\u00e3o interna, para que a troca de formato n\u00e3o vire fonte de bugs de compatibilidade entre times.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essa mesma l\u00f3gica de origem, decis\u00e3o de arquitetura e consequ\u00eancia concreta aparece em outras camadas da <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/logica-de-programacao-o-que-e\/\">l\u00f3gica de programa\u00e7\u00e3o<\/a> por tr\u00e1s de um sistema em produ\u00e7\u00e3o: cada estrutura de dados escolhida carrega um custo computacional que s\u00f3 aparece sob carga real.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Performance de infraestrutura entra na equa\u00e7\u00e3o<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Reduzir o custo de CPU e banda por requisi\u00e7\u00e3o \u00e9 s\u00f3 metade da equa\u00e7\u00e3o. A outra metade \u00e9 onde esse sistema roda. Um <a href=\"https:\/\/www.locaweb.com.br\/servidor-vps\/\">Servidor VPS<\/a> com recursos dedicados entrega previsibilidade para microsservi\u00e7os que processam payloads bin\u00e1rios em alto volume, sem o ru\u00eddo de performance de um ambiente compartilhado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para arquiteturas que precisam escalar com o crescimento do tr\u00e1fego, sem reconfigurar servidor a cada pico de demanda, o <a href=\"https:\/\/www.locaweb.com.br\/locaweb-cloud\/\">Locaweb Cloud<\/a> oferece recursos isolados que acompanham a curva de uso, com cobran\u00e7a em reais e data center no Brasil, o que reduz lat\u00eancia de rede para aplica\u00e7\u00f5es que atendem majoritariamente usu\u00e1rios brasileiros. \u00c9 o mesmo racioc\u00ednio de reduzir overhead na camada de dados aplicado \u00e0 camada de infraestrutura: menos desperd\u00edcio, mais previsibilidade sob carga.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seguran\u00e7a e governan\u00e7a de dados tamb\u00e9m entram nessa conta de arquitetura. Se o seu sistema lida com dados sens\u00edveis, vale entender como <a href=\"https:\/\/www.locaweb.com.br\/blog\/?p=55155\">soberania de dados<\/a> se conecta \u00e0 decis\u00e3o de onde e como seus dados trafegam e s\u00e3o armazenados.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>FAQ \u2013 Perguntas frequentes sobre c\u00f3digo bin\u00e1rio e serializa\u00e7\u00e3o<\/strong><\/h2>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-1&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-icon has-icon-right\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-1-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"accordion-item-1\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\"><strong>Protobuf \u00e9 sempre mais r\u00e1pido que JSON?<\/strong><\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div aria-labelledby=\"accordion-item-1\" data-wp-bind--hidden=\"state.isHidden\" data-wp-on--beforematch=\"actions.handleBeforeMatch\" id=\"accordion-item-1-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p class=\"wp-block-paragraph\">N\u00e3o necessariamente. Para strings longas a diferen\u00e7a de tamanho encolhe, e em sistemas de baixo volume o ganho de performance n\u00e3o compensa a complexidade adicional de schema e build. O benef\u00edcio aparece com clareza em alto volume de requisi\u00e7\u00f5es e dados num\u00e9ricos.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-2&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-icon has-icon-right\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-2-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"accordion-item-2\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\"><strong>Preciso trocar toda a minha API para Protobuf?<\/strong><\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div aria-labelledby=\"accordion-item-2\" data-wp-bind--hidden=\"state.isHidden\" data-wp-on--beforematch=\"actions.handleBeforeMatch\" id=\"accordion-item-2-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p class=\"wp-block-paragraph\">N\u00e3o. A pr\u00e1tica mais comum \u00e9 h\u00edbrida: JSON em APIs p\u00fablicas e interfaces consumidas por humanos, formato bin\u00e1rio em comunica\u00e7\u00e3o interna entre servi\u00e7os e em pipelines de alto throughput.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-3&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-icon has-icon-right\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-3-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"accordion-item-3\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\"><strong>Qual a diferen\u00e7a entre Protobuf, Avro e MessagePack?<\/strong><\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div aria-labelledby=\"accordion-item-3\" data-wp-bind--hidden=\"state.isHidden\" data-wp-on--beforematch=\"actions.handleBeforeMatch\" id=\"accordion-item-3-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Os tr\u00eas s\u00e3o formatos bin\u00e1rios de serializa\u00e7\u00e3o, mas resolvem problemas ligeiramente diferentes. Protobuf exige schema definido previamente e \u00e9 forte em gera\u00e7\u00e3o de c\u00f3digo entre linguagens. Avro guarda o schema junto aos dados, o que facilita evolu\u00e7\u00e3o de schema em sistemas de streaming. MessagePack funciona como um JSON bin\u00e1rio, sem exigir schema pr\u00e9vio, trocando parte do ganho de performance por simplicidade de ado\u00e7\u00e3o.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-4&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-icon has-icon-right\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-4-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"accordion-item-4\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\"><strong>C\u00f3digo bin\u00e1rio puro ainda \u00e9 usado em sistemas modernos?<\/strong><\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div aria-labelledby=\"accordion-item-4\" data-wp-bind--hidden=\"state.isHidden\" data-wp-on--beforematch=\"actions.handleBeforeMatch\" id=\"accordion-item-4-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Sim, mas raramente como o programador escreve diretamente. A representa\u00e7\u00e3o bin\u00e1ria acontece nas camadas mais baixas: serializa\u00e7\u00e3o de dados, protocolos de rede e armazenamento em disco. O trabalho do desenvolvedor hoje \u00e9 escolher o formato que estrutura esse bin\u00e1rio (JSON, Protobuf, Avro), n\u00e3o escrever a sequ\u00eancia de 0s e 1s manualmente.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-5&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-icon has-icon-right\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-5-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" id=\"accordion-item-5\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\"><strong>Vale a pena aprender c\u00f3digo bin\u00e1rio puro para trabalhar com desenvolvimento?<\/strong><\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div aria-labelledby=\"accordion-item-5\" data-wp-bind--hidden=\"state.isHidden\" data-wp-on--beforematch=\"actions.handleBeforeMatch\" id=\"accordion-item-5-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Entender o conceito ajuda a interpretar por que um formato bin\u00e1rio \u00e9 mais compacto que texto, mas n\u00e3o \u00e9 pr\u00e9-requisito para decidir entre JSON e Protobuf no dia a dia. A decis\u00e3o de arquitetura depende mais de volume de tr\u00e1fego e necessidade de legibilidade do que de dom\u00ednio profundo de \u00e1lgebra booleana.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Em 2023, o time de engenharia do LinkedIn trocou JSON por Protobuf em parte da stack do Rest.li. O resultado: at\u00e9 60% de redu\u00e7\u00e3o na lat\u00eancia P99 sob carga pesada, segundo o blog de engenharia da pr\u00f3pria empresa (acesso em out\/2026). Esse n\u00famero \u00e9 s\u00f3lido o bastante para justificar a migra\u00e7\u00e3o de um framework usado [&hellip;]<\/p>\n","protected":false},"author":24,"featured_media":40657,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-40656","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-aberto"],"acf":[],"thumbnail":{"url":"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/04\/codigo-binario-capa-380x215.jpg","width":380,"height":215,"alt":"mulher em um escrit\u00f3rio olhando um tablet"},"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/40656","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=40656"}],"version-history":[{"count":7,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/40656\/revisions"}],"predecessor-version":[{"id":55294,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/40656\/revisions\/55294"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media\/40657"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=40656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=40656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=40656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}