{"id":1507,"date":"2025-04-18T15:56:12","date_gmt":"2025-04-18T15:56:12","guid":{"rendered":"https:\/\/mugnos-it.com\/?p=1507"},"modified":"2025-06-03T00:49:46","modified_gmt":"2025-06-03T00:49:46","slug":"sidecar-pattern-ineficiencia-operacional-e-computacional-ou-uma-carta-na-manga-%f0%9f%a4%94%e2%99%a3%ef%b8%8f","status":"publish","type":"post","link":"https:\/\/mugnos-it.com\/pt\/sidecar-pattern-ineficiencia-operacional-e-computacional-ou-uma-carta-na-manga-%f0%9f%a4%94%e2%99%a3%ef%b8%8f\/","title":{"rendered":"Sidecar Pattern: Inefici\u00eancia Operacional e Computacional ou Uma Carta na Manga? \ud83e\udd14\u2663\ufe0f"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"1507\" class=\"elementor elementor-1507\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29699cbc e-flex e-con-boxed e-con e-parent\" data-id=\"29699cbc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2ad01c1b elementor-widget elementor-widget-text-editor\" data-id=\"2ad01c1b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p id=\"1b214600-107e-8035-a172-e0c8c810ffd5\"><strong>Compilado do newsletter:<\/strong><\/p>\n\n\n\n<ul id=\"1b214600-107e-8037-a379-caabf6ada7e8\" class=\"wp-block-list\">\n<li>O <strong>Sidecar Pattern<\/strong> \u00e9 um processo\/container secund\u00e1rio que roda ao lado do processo\/container principal para lidar com fun\u00e7\u00f5es complementares sem acoplar \u00e0 aplica\u00e7\u00e3o.<\/li>\n\n\n\n<li>Ele \u00e9 \u00fatil para <strong>observabilidade, seguran\u00e7a, service discovery e integra\u00e7\u00e3o com sistemas legados<\/strong>, reduzindo impacto ou acoplamento no c\u00f3digo principal.<\/li>\n\n\n\n<li>Pode gerar <strong>inefici\u00eancia <\/strong>e <strong>aumento de custos<\/strong>, pois exige seus pr\u00f3prios recursos de CPU, mem\u00f3ria e disco, tornando essencial avaliar se o custo-benef\u00edcio justifica seu uso na arquitetura.<br><\/li>\n<\/ul>\n\n\n\n<p id=\"1b214600-107e-8007-97cd-ca164ec46f8c\">Se at\u00e9 o fim do newsletter voc\u00ea curtir o conte\u00fado e quiser se aprofundar mais em arquitetura de software, venha fazer parte da <strong>Comunidade de Arquitetura Descomplicada (CaD)<\/strong>! Saiba mais em <a href=\"https:\/\/mugnos-it.com\/pt\/cad\/\">https:\/\/mugnos-it.com\/cad\/<\/a> \ud83d\ude80<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"1b214600-107e-80b3-bb96-c831bacaca0c\"\/>\n\n\n\n<p id=\"1b214600-107e-805c-a02a-f699b16c06ed\"><strong>Sidecar Pattern: Inefici\u00eancia Operacional e Computacional ou Uma Carta na Manga? \ud83e\udd14\u2663\ufe0f<br><\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-80ae-9b97-c4c04fb2b535\">Sempre tive d\u00favidas sobre a real efici\u00eancia do <strong>Sidecar Pattern<\/strong>. Ser\u00e1 que ele s\u00f3 adiciona complexidade e consumo desnecess\u00e1rio de recursos? Ou realmente pode ser um trunfo na arquitetura? At\u00e9 que entendi como ele pode ser <strong>uma pe\u00e7a-chave<\/strong> em alguns cen\u00e1rios bem espec\u00edficos, como <strong>observabilidade, seguran\u00e7a e integra\u00e7\u00e3o com sistemas legados ou refactor de c\u00f3digo.<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-8029-8c18-ffb4c41682a9\">O <strong>Sidecar Pattern<\/strong> \u00e9 uma abordagem onde um <strong>componente complementar<\/strong> roda ao lado da aplica\u00e7\u00e3o principal, normalmente dentro do mesmo pod (em Kubernetes) ou m\u00e1quina, mas isolado da l\u00f3gica central do app. Ele permite <strong>desacoplar funcionalidades transversais<\/strong> sem modificar o c\u00f3digo do servi\u00e7o principal, como por exemplo no mesmo POD subir um container com GO e fazendo chamadas para o container no mesmo POD para utiliza\u00e7\u00e3o de alguma fun\u00e7\u00e3o que esta em alguma outra linguagem, como por exemplo Java.<br><\/p>\n\n\n\n<p id=\"1b214600-107e-802c-b5d8-e3299ffa72cb\">Agora, vamos ver <strong>casos de usos reais<\/strong> onde o <strong>Sidecar Pattern <\/strong>geralmente \u00e9 usado, mas antes, s\u00f3 pra garantir que vc entendeu o que \u00e9 Sidecar, essa imagem abaixo \u00e9 o que um Sidecar signficia, uma moto com uma dire\u00e7\u00e3o central e um \u201ccontainer\u201d ao lado que pode ser multiuso, tanto para colocar pessoas como qualquer outra coisa.<\/p>\n\n\n\n<figure class=\"wp-block-image\" id=\"1b214600-107e-8019-982d-ca49a6c8ca40\"><a href=\"https:\/\/files.oaiusercontent.com\/file-9aUVCpfw8CGdBd5MeGqP8X?se=2025-03-10T10%3A36%3A38Z&amp;sp=r&amp;sv=2024-08-04&amp;sr=b&amp;rscc=max-age%3D604800%2C%20immutable%2C%20private&amp;rscd=attachment%3B%20filename%3D9db3f4e7-b5eb-4b8c-ac9e-baf439b60d4b.webp&amp;sig=hL4NE7Tw7ce5NNmoMnxYh9nA%2BDF2XU4ZqcflKSGXTOg%3D\"><img decoding=\"async\" src=\"https:\/\/files.oaiusercontent.com\/file-9aUVCpfw8CGdBd5MeGqP8X?se=2025-03-10T10%3A36%3A38Z&amp;sp=r&amp;sv=2024-08-04&amp;sr=b&amp;rscc=max-age%3D604800%2C%20immutable%2C%20private&amp;rscd=attachment%3B%20filename%3D9db3f4e7-b5eb-4b8c-ac9e-baf439b60d4b.webp&amp;sig=hL4NE7Tw7ce5NNmoMnxYh9nA%2BDF2XU4ZqcflKSGXTOg%3D\" alt=\"\"\/><\/a><\/figure>\n\n\n\n<p id=\"1b214600-107e-80ff-b68e-c2591fbac264\">(N\u00e3o\u2026 n\u00e3o\u2026 essa imagem n\u00e3o esta tentando dizer que a tartaruga representa o famoso <strong>r\u00edgido<\/strong> e <strong>r\u00e1pido<\/strong> Java!!! Essa conclus\u00e3o foi sua\u2026 haha \ud83d\udc40)<\/p>\n\n\n\n<p id=\"1b214600-107e-8026-bd51-eea9766a23cd\">Voltando para realidade, aqui est\u00e3o alguns casos de usos onde o Sidecar \u00e9 geralmente usado:<\/p>\n\n\n\n<p id=\"1b214600-107e-80e8-a1c7-e6e5608ff8ed\">\u27a1\ufe0f <strong>Logging e Observabilidade<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-8048-924e-d6e297a9742d\">O Sidecar Pattern pode ser usado para lidar com <strong>logging, m\u00e9tricas e tracing distribu\u00eddo<\/strong> de forma centralizada. Em vez de cada servi\u00e7o implementar sua pr\u00f3pria l\u00f3gica de coleta de logs e m\u00e9tricas, um <strong>sidecar dedicado<\/strong> pode interceptar e encaminhar esses dados para ferramentas como <strong>Fluentd ou OpenTelemetry<\/strong>. Isso reduz o acoplamento da aplica\u00e7\u00e3o com solu\u00e7\u00f5es espec\u00edficas de observabilidade e facilita a padroniza\u00e7\u00e3o do monitoramento sem modificar o c\u00f3digo dos servi\u00e7os principais.<\/p>\n\n\n\n<p id=\"1b214600-107e-80a7-ad52-c6cf4685316b\">Note que em alguns casos faz mais sentido voc\u00ea ter um agente rodando como daemonset e coletando de todos PODs, mas como tudo\u2026 depende do seu ambiente e do que esta tentando fazer.<\/p>\n\n\n\n<p id=\"1b214600-107e-80a9-b96a-f9df1ac80dbf\"><strong>Exemplo: <\/strong>J\u00e1 precisei usar o <strong>Sidecar Pattern<\/strong> para instalar o <strong>OpenTelemetry<\/strong> em uma <strong>task definition do AWS App Mesh<\/strong> rodando no <strong>ECS<\/strong>. O sidecar capturava os logs do <strong>STDOUT<\/strong> do container principal e os encaminhava para o <strong>Splunk<\/strong>, garantindo observabilidade sem modificar a aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p id=\"1b214600-107e-8093-995d-f89361d35357\">Bons tempos&#8230; Mas agora a <strong>AWS anunciou que o AWS App Mesh ser\u00e1 descontinuado at\u00e9 o final de 2026<\/strong> \ud83d\ude2d\ud83d\ude2d. (N\u00e3o que eu v\u00e1 sentir falta\u2014prefiro outras solu\u00e7\u00f5es de service mesh no <strong>EKS<\/strong> \ud83d\ude0e).<\/p>\n\n\n\n<p id=\"1b214600-107e-80d1-a8e2-f4e00516e473\"><br><\/p>\n\n\n\n<p id=\"1b214600-107e-80ef-b3a5-c502397bd84c\">\u27a1\ufe0f <strong>Service Discovery<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-8022-849d-f4d7980e5c89\">O <strong>Sidecar Pattern<\/strong> pode facilitar a <strong>descoberta de servi\u00e7os<\/strong> ao atuar como um intermedi\u00e1rio na comunica\u00e7\u00e3o entre aplica\u00e7\u00f5es. Em arquiteturas din\u00e2micas, como <strong>Kubernetes<\/strong>, os servi\u00e7os podem mudar de IP ou serem escalados dinamicamente, tornando dif\u00edcil a conex\u00e3o direta entre eles.<\/p>\n\n\n\n<p id=\"1b214600-107e-8022-a4f1-c174e0cc7c9f\">Com um service mesh como <strong>Istio ou Linkerd<\/strong>, cada servi\u00e7o tem um <strong>sidecar proxy<\/strong> (geralmente Envoy) que intercepta e gerencia as requisi\u00e7\u00f5es. Isso permite que os servi\u00e7os se comuniquem sem precisar saber <strong>exatamente onde os outros est\u00e3o<\/strong>, pois o sidecar lida com a resolu\u00e7\u00e3o dos endere\u00e7os automaticamente.<\/p>\n\n\n\n<p id=\"1b214600-107e-808a-ae4a-d09cdcbfc7a3\">Hoje, isso \u00e9 algo t\u00e3o autom\u00e1tico no Kubernetes que muitas vezes nem percebemos. Mas j\u00e1 precisei usar um sidecar para registrar e remover servi\u00e7os de uma base de dados ao integrar com um Mainframe. Poderia ter feito isso diretamente no container principal? Sim, mas a complexidade teria sido bem maior!\u201d<br><br><br><strong>Exemplo:<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-804f-ad32-c1c0cdba42ad\"><strong><\/strong>Em um sistema de e-commerce, o servi\u00e7o de <strong>checkout<\/strong> precisa se comunicar com o servi\u00e7o de <strong>pagamento<\/strong>, mas os pods de pagamento podem escalar ou reiniciar a qualquer momento. Com um sidecar atuando no <strong>service discovery<\/strong>, o servi\u00e7o de checkout pode simplesmente enviar a requisi\u00e7\u00e3o para o <strong>proxy local<\/strong>, que roteia automaticamente para uma inst\u00e2ncia v\u00e1lida do servi\u00e7o de pagamento, sem que o app precise lidar com mudan\u00e7as de IPs ou DNS.<\/p>\n\n\n\n<p id=\"1b214600-107e-8030-aedd-dfc16fe410af\">\u27a1\ufe0f <strong>Proxy e Routing<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-80f2-92a9-cfe68b290855\">Em arquiteturas distribu\u00eddas, lidar com <strong>balanceamento de carga<\/strong>, <strong>retries<\/strong> e <strong>failover<\/strong> pode ser um desafio, principalmente quando cada servi\u00e7o precisa implementar essas regras por conta pr\u00f3pria. O <strong>Sidecar Pattern<\/strong> <strong>resolve<\/strong> <strong>isso<\/strong> ao adicionar um <strong>proxy inteligente<\/strong>, como o Envoy, que gerencia a comunica\u00e7\u00e3o entre microsservi\u00e7os de forma transparente.<\/p>\n\n\n\n<p id=\"1b214600-107e-80fb-a56e-e8c7d1d86109\"><strong>Exemplo:<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-803c-9199-c3f3696f00b2\">Imagine um sistema de e-commerce onde o servi\u00e7o de <strong>checkout<\/strong> precisa se comunicar com o servi\u00e7o de <strong>pagamentos<\/strong>. Se um dos pods de pagamentos estiver sobrecarregado ou indispon\u00edvel, um <strong>sidecar proxy<\/strong> pode automaticamente redirecionar a requisi\u00e7\u00e3o para outra inst\u00e2ncia saud\u00e1vel, sem que o servi\u00e7o de checkout precise lidar com essa l\u00f3gica. Al\u00e9m disso, se uma requisi\u00e7\u00e3o falhar, o <strong>proxy pode aplicar um retry<\/strong> inteligente, reduzindo a chance de falhas percebidas pelo usu\u00e1rio.<\/p>\n\n\n\n<p id=\"1b214600-107e-8042-add4-cd21abacff3b\">Outro benef\u00edcio \u00e9 o <strong>controle de tr\u00e1fego<\/strong>. Se voc\u00ea quiser fazer um <strong>canary deployment<\/strong>, onde apenas 10% dos usu\u00e1rios acessam a nova vers\u00e3o do servi\u00e7o, o sidecar pode rotear o tr\u00e1fego dinamicamente, sem alterar o c\u00f3digo da aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p id=\"1b214600-107e-80be-9342-e611e4c6092f\">Com isso, o <strong>Sidecar Pattern<\/strong> n\u00e3o s\u00f3 melhora a resili\u00eancia do sistema, mas tamb\u00e9m facilita a implementa\u00e7\u00e3o de estrat\u00e9gias avan\u00e7adas de <strong>deploy e roteamento<\/strong>. \ud83d\ude80<\/p>\n\n\n\n<p id=\"1b214600-107e-8050-86e3-def41465ddc7\">\u27a1\ufe0f <strong>Autentica\u00e7\u00e3o e Seguran\u00e7a<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-8032-93b6-dfef9fc2336f\">Em vez de implementar autentica\u00e7\u00e3o dentro de cada servi\u00e7o, um sidecar pode lidar com <strong>JWTs, certificados mTLS e at\u00e9 Rate Limiting<\/strong>, garantindo um controle mais centralizado.<\/p>\n\n\n\n<p id=\"1b214600-107e-8050-91e6-dfcbe19276da\">Gerenciar <strong>autentica\u00e7\u00e3o e seguran\u00e7a<\/strong> em uma arquitetura distribu\u00edda pode ser complexo, especialmente quando cada servi\u00e7o precisa validar tokens, gerenciar certificados e aplicar restri\u00e7\u00f5es de acesso individualmente. O <strong>Sidecar Pattern<\/strong> resolve isso ao centralizar essas responsabilidades, garantindo mais consist\u00eancia e reduzindo a complexidade dentro dos microsservi\u00e7os.<\/p>\n\n\n\n<p id=\"1b214600-107e-8086-829a-f8c797550d53\">Lembra do <strong>SOLID<\/strong>? Pois \u00e9, <strong>Single Responsibility Principle!<\/strong> Se o seu microsservi\u00e7o \u00e9 respons\u00e1vel pelo <strong>checkout<\/strong>, por que ele deveria lidar com <strong>autentica\u00e7\u00e3o<\/strong> tamb\u00e9m? Al\u00e9m de misturar responsabilidades, qualquer mudan\u00e7a no mecanismo de autentica\u00e7\u00e3o exigiria <strong>atualizar todos os microsservi\u00e7os<\/strong> que dependem dele. J\u00e1 viu esse filme? Eu j\u00e1 \u2013 e v\u00e1rias vezes! O resultado? <strong>C\u00f3digo duplicado, menos agilidade e um impacto direto no time to market.<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-80a3-a2a7-f5e284f81427\"><strong>Exemplo:<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-800e-ac5e-ffe68d3673e8\">Imagine um ambiente onde m\u00faltiplos servi\u00e7os precisam validar <strong>JWTs<\/strong> para autorizar requisi\u00e7\u00f5es. Em vez de cada servi\u00e7o implementar essa l\u00f3gica, um <strong>sidecar pode atuar como um gateway de autentica\u00e7\u00e3o<\/strong>, interceptando as requisi\u00e7\u00f5es, validando tokens e s\u00f3 encaminhando requisi\u00e7\u00f5es v\u00e1lidas para os servi\u00e7os principais.<\/p>\n\n\n\n<p id=\"1b214600-107e-80da-b264-cf40480bd6e7\">Outro caso comum \u00e9 o uso de <strong>mTLS (Mutual TLS)<\/strong> para garantir que apenas servi\u00e7os autorizados consigam se comunicar dentro da infraestrutura. Um sidecar pode gerenciar <strong>certificados automaticamente<\/strong>, garantindo que a aplica\u00e7\u00e3o se comunique de forma segura sem precisar se preocupar com rota\u00e7\u00e3o de chaves ou configura\u00e7\u00f5es complexas de criptografia.<\/p>\n\n\n\n<p id=\"1b214600-107e-8085-8f86-c4829a9f1486\">Al\u00e9m disso, <strong>Rate Limiting<\/strong> pode ser aplicado diretamente no sidecar, protegendo os servi\u00e7os contra <strong>abuso e DDoS<\/strong>, sem necessidade de c\u00f3digo adicional nos microsservi\u00e7os. Por exemplo, um servi\u00e7o de <strong>checkout<\/strong> pode ter um limite de <strong>100 requisi\u00e7\u00f5es por segundo<\/strong>, bloqueando requisi\u00e7\u00f5es excedentes diretamente no sidecar antes de sobrecarregar o backend.<\/p>\n\n\n\n<p id=\"1b214600-107e-8061-9430-fc329679facb\">\u27a1\ufe0f <strong>Libs Compartilhadas ou Legadas<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-8096-b004-c649e3c20d8f\">Em muitos sistemas, especialmente em <strong>migra\u00e7\u00f5es de arquiteturas monol\u00edticas para microsservi\u00e7os<\/strong>, pode haver <strong>bibliotecas legadas ou propriet\u00e1rias<\/strong> que ainda s\u00e3o essenciais para o funcionamento da aplica\u00e7\u00e3o. Em vez de incluir essas depend\u00eancias em cada servi\u00e7o, um <strong>sidecar pode encapsular essa l\u00f3gica e exp\u00f4-la via API local<\/strong>, garantindo que todos os microsservi\u00e7os possam acess\u00e1-la sem acoplamento direto.<\/p>\n\n\n\n<p id=\"1b214600-107e-8032-8b56-da6131599af7\">Se voc\u00ea leu e n\u00e3o ficou 100% claro, sugiro :<\/p>\n\n\n\n<p id=\"1b214600-107e-805c-898b-e804eafb3c39\">while [ ! $understood ]; do read_again &#8220;Libs Compartilhadas ou Legadas&#8221;; done<\/p>\n\n\n\n<p id=\"1b214600-107e-8011-aa0f-d912b1678fd4\"><strong>Exemplo:<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-8083-9ba7-d2aec094e541\">Imagine que voc\u00ea tem uma <strong>biblioteca de c\u00e1lculo de impostos<\/strong> usada h\u00e1 anos no monolito, mas que agora precisa ser acessada por v\u00e1rios microsservi\u00e7os sem reescrev\u00ea-la. Em vez de integrar essa lib em cada servi\u00e7o (o que geraria problemas de vers\u00e3o, compatibilidade e manuten\u00e7\u00e3o), um <strong>sidecar pode rodar essa biblioteca separadamente<\/strong> e expor um endpoint local, permitindo que os servi\u00e7os consultem os c\u00e1lculos sem depender diretamente da implementa\u00e7\u00e3o.<\/p>\n\n\n\n<p id=\"1b214600-107e-80ff-aeeb-f4c5b33ce30f\">Isso tamb\u00e9m facilita <strong>migra\u00e7\u00f5es graduais<\/strong>, permitindo que a l\u00f3gica seja substitu\u00edda ou modernizada no sidecar sem impactar os microsservi\u00e7os que a utilizam. \ud83d\ude80<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1b214600-107e-8026-8cee-d4a9cd4d6ba2\">\ud83d\ude80 Conclus\u00e3o<br><\/h3>\n\n\n\n<p id=\"1b214600-107e-80ba-b546-f7d1a5dd8cde\">O <strong>Sidecar Pattern<\/strong> pode ser uma solu\u00e7\u00e3o poderosa para desacoplar funcionalidades transversais, mas <strong>n\u00e3o \u00e9 uma bala de prata<\/strong>. Como ele roda em um <strong>pod separado<\/strong>, pode gerar <strong>inefici\u00eancia de capacidade<\/strong>, j\u00e1 que consome <strong>CPU, mem\u00f3ria e espa\u00e7o em disco pr\u00f3prios<\/strong>, aumentando o consumo computacional. Em ambientes mal planejados, isso pode escalar mal e at\u00e9 encarecer a infraestrutura sem trazer um benef\u00edcio que valha a pena.<br><\/p>\n\n\n\n<p id=\"1b214600-107e-8089-a6e8-da3247fc85b8\">No fim, a pergunta n\u00e3o \u00e9 <strong>&#8220;Devo usar Sidecar?&#8221;<\/strong>, mas sim <strong>&#8220;Faz sentido usar Sidecar neste contexto?&#8221;<\/strong>. Se a resposta for sim, voc\u00ea tem um grande indicativo que deve usar.<br><\/p>\n\n\n\n<p id=\"1b214600-107e-80a0-92f1-ceb9fd91bcc2\">mas como sempre digo na <strong>CaD (Comunidade de Arquitetura Descomplicada)<\/strong>, n\u00e3o adianta aprender um pattern e sair aplicando ele como se fosse a solu\u00e7\u00e3o para todos problemas.<\/p>\n\n\n\n<p id=\"1b214600-107e-805a-9705-f2d47a54e04d\">Arquitetura n\u00e3o \u00e9 sobre ter um martelo e sair procurando pregos\u2014\u00e9 sobre ter <strong>v\u00e1rias ferramentas<\/strong> e saber <strong>qual escolher para cada situa\u00e7\u00e3o<\/strong>.<br><\/p>\n\n\n\n<p id=\"1b214600-107e-807f-ab95-f3fbe1e8fe0b\">E \u00e9 aqui que vem a melhor analogia: escolher um pattern \u00e9 como escolher um(a) parceiro(a) de vida. <strong>Voc\u00ea precisa conhec\u00ea-los bem, entender os trade-offs e, principalmente, escolher pelos defeitos, n\u00e3o s\u00f3 pelas virtudes<\/strong>. Afinal, sabendo os desafios de antem\u00e3o hehehe \ud83d\ude02&nbsp;<\/p>\n\n\n\n<p id=\"1b214600-107e-808d-b48f-f335003eff16\"><strong>E a\u00ed, j\u00e1 passou por alguma situa\u00e7\u00e3o onde um Sidecar fez (ou n\u00e3o fez) sentido? <\/strong>V\u00e1rios j\u00e1 est\u00e3o compartilhando suas experi\u00eancias, e essa troca de informa\u00e7\u00f5es tem sido sensacional! Em breve, quando tivermos um n\u00famero maior de pessoas engajadas, a ideia \u00e9 abrir um grupo no WhatsApp para discutirmos ainda mais sobre arquitetura. <strong>O que acha dessa ideia?<\/strong><\/p>\n\n\n\n<p id=\"1b214600-107e-80c7-8ba1-c111b13ab40c\"><br>\ud83d\udea8Se curtiu esse conte\u00fado e quer aprender mais sobre arquitetura de software e um n\u00edvel bem mais aprofundado, venha fazer parte da<br><strong>Comunidade de Arquitetura Descomplicada (CaD)<\/strong>! Saiba mais em <a href=\"https:\/\/mugnos-it.com\/pt\/cad\/\">https:\/\/mugnos-it.com\/cad\/<\/a> \ud83d\ude80\ud83d\udea8<\/p>\n\n\n\n<p id=\"1b214600-107e-8076-af24-d2fd8b768346\">Abra\u00e7os!<\/p>\n\n\n\n<p id=\"1b214600-107e-80fd-8165-c624fb086aa7\">Douglas Mugnos<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2e78a6d e-flex e-con-boxed e-con e-parent\" data-id=\"2e78a6d\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Compilado do newsletter: Se at\u00e9 o fim do newsletter voc\u00ea curtir o conte\u00fado e quiser se aprofundar mais em arquitetura de software, venha fazer parte da Comunidade de Arquitetura Descomplicada (CaD)! Saiba mais em https:\/\/mugnos-it.com\/cad\/ \ud83d\ude80 Sidecar Pattern: Inefici\u00eancia Operacional e Computacional ou Uma Carta na Manga? \ud83e\udd14\u2663\ufe0f Sempre tive d\u00favidas sobre a real efici\u00eancia [&hellip;]<\/p>","protected":false},"author":3,"featured_media":1900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/04\/06.-inefic-2.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts\/1507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/comments?post=1507"}],"version-history":[{"count":4,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts\/1507\/revisions"}],"predecessor-version":[{"id":2031,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts\/1507\/revisions\/2031"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/media\/1900"}],"wp:attachment":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/media?parent=1507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/categories?post=1507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/tags?post=1507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}