José Roberto Araújo @jrobertofaraujo.bsky.social · 06/10/2024Tens que analisar se o socket server ser usado tem Idle Timeout, quantas conexões ele segura por minuto ou por segundo, etc! Um sistema de filas vai fazer deload sim. 010
José Roberto Araújo @jrobertofaraujo.bsky.social · 30/09/2024Exatamente! Aqui em Portugal, existe uma boa parcela da população q ainda investe tempo e dinheiro em beta, raspadinhas! Aqui em PT, ainda q tenha bastante acesso e oportunidades, é coisas boas, ainda há muita desigualdade e o salários são baixos, levando o povo a querer mudar a vida pelas apostas 110
José Roberto Araújo @jrobertofaraujo.bsky.social · 30/09/2024Tá bonito esse prato aí hein! Irra 😋🤤 000
José Roberto Araújo @jrobertofaraujo.bsky.social · 30/09/2024E hoje eu fecho meu ciclo trabalhando com NodeJs. Aprendi muitas coisas legais, vi que outras coisas não são tão legais assim, mas faz parte do ecossistema. Agora vou aproveitar minhas 2 semanas de férias antes de começar no novo desafio, agora aplicando o ditado: Bom filho à casa torna: Usando C#! 010
José Roberto Araújo @jrobertofaraujo.bsky.social · 27/09/2024Fiz um vídeo no Youtube mostrando a implementação desse padrão usando Apache Kafka, Sql Server e C#. Link do video: bit.ly/outbox-pattern Se você chegou até aqui, Obrigado. Gostou muito? Então deixa seu like, e contribua com o meu trabalho: Compartilhando esse post commais pessoas. bit.ly#Event-Driven: Outbox Pattern usando .NET 6Trabalhar em sistemas distribuídos é um grande desafio, dado a grande quantidade de conceitos e padrões computacionais que um engenheiro de sistemas precisa ... 000
José Roberto Araújo @jrobertofaraujo.bsky.social · 27/09/2024O padrão Outbox é normalmente usado em sistemas distribuídos onde vários componentes estão se comunicando entre si de forma assíncrona. Nesses sistemas, é importante garantir que as mensagens sejam entregues de forma confiável, mesmo se um ou mais componentes falharem. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 27/09/2024O componente Background Service consome os dados da tabela Outbox e garante que essas mensagens sejam enviadas com êxito, mesmo que o message broker esteja offline no momento do envio da mensagem. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 27/09/2024O padrão Outbox é um padrão de mensagens usado para lidar com a comunicação assíncrona entre diferentes componentes de um sistema. Envolve o uso de uma tabela chamada Outbox responsável por armazenar as mensagens que precisam ser enviadas para outros componentes. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 27/09/2024E se algo der errado? E ocorrer uma falha durante a publicação da mensagem? 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 27/09/2024Essa comunicação pode ocorrer de forma assíncrona, ou seja, um componente envia uma mensagem para outro componente, mas não espera uma resposta. Um padrão comumente usado para lidar com a comunicação assíncrona é o padrão Outbox. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 27/09/2024Em aplicativos de software modernos, é comum ter vários componentes se comunicando entre si, no mesmo aplicativo ou em vários aplicativos. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 27/09/2024{ Event-Driven Architecture: Outbox Pattern } Em arquitetura de sistemas distribuídos, o grande desafio é garantir a entrega de mensagens. Eu vou te explicar um Padrão arquitetural que vai te ajudar a resolver esse desafio. 120
José Roberto Araújo @jrobertofaraujo.bsky.social · 27/09/2024Caracas mano, projeto sardinha, ativado! cabuloso 010
José Roberto Araújo @jrobertofaraujo.bsky.social · 26/09/2024{ 🥳 Novos desafios } Daqui algumas semanas vou começar uma nova jornada, assumindo um desafio grande de evoluir uma plataforma de Blockchain gameficada e melhor, vou voltar a trabalhar com C# #csharp #dotnet 110
José Roberto Araújo @jrobertofaraujo.bsky.social · 25/09/2024Parece que o BlueSky não entregou esse meu conteúdo. Por isso, vou passar na sua timeline, novamente, para te lembrar dessa publicação que liberei essa semana! #ArquiteturaDeSoftware #SystemDesign 020
José Roberto Araújo @jrobertofaraujo.bsky.social · 24/09/2024Poxa, eu percebo o seu ponto! Sério! A questão é q td q se coloca no LinkedIn COMPILA. E falo isso, ñ desmerecendo o seu currículo, pq dá pra peceber seu nível técnico através dos conteúdos q vc produz. + qm vai te entrevistar precisa validar algumas questões, q eles entenderam ser necessárias! 🤷 010
José Roberto Araújo @jrobertofaraujo.bsky.social · 24/09/2024Eu percebo q p/ o seu nível técnico, esse tema possa ter sido entendido como Básico. + em 1 entrevista, tratar d temas como Concorrencia, Paralelismo, Threads, e etc. Para além d conseguir identificar o grau de conhecimento do cand., o entrevistador pode saber se o cand. entende os detalhes ou não! 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 24/09/2024São por essas e outras que as vezes eu prefiro ser visto como "ignorante" a ter que lidar com essas coisas, e sequer conhecer essas redes pifias com pessoas pequenas, pensamentos sem embasamento nenhum, só proliferando o ódio e a discordia. Vamos manter a Paz por aqui, ainda é saudável estar aqui 💜 020
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Sensacional essa thread, trazendo o conceito raíz sobre a definição de Sistemas Distribuídos, facilitando o entendimento para quem está chegando agora nesse tema. 120
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Espero que o conteúdo dessa thread tenha te ajudado de alguma maneira a entender um pouco mais sobre System Design e como modelar o design das suas APIs. Se chegou até aqui, muito obrigado pelo interesse em ler meus conteúdos! 💜 000
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Dessa forma, Ter 1 API de Experiência vai permitir q a plataforma tenha capacidade de centralizar as lógicas de orquestração, composição e fluxo de jornada do cliente (end-user) em 1 componente dentro da plataforma. Assim, BFFs só precisam pedir e retornar os dados necessários. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Através desse contexto, eu espero que você tenha conseguido compreender a importância e o benefício de se ter uma API de Experiência. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Entender a Customer Journey (Jornada do Cliente), te ajuda também a perceber porque é importante levar em consideração APIs de Experiência. Caso contrário, vamos ter que lidar com a complexidade em vários outros componentes espalhados em uma arquitetura MSA. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Aqui eu explico um pouco dessas nuances! 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024O desenvolvimento de APIs ñ se resume apenas em expor, publicamente, capacidades de negócio. APIs são compostas por várias experiências e capacidades. E p abraçar essas nuances, é necessário entender o Customer Journey. Ter APIs de Experiência, pode te ajudar aqui! 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Nesse contexto, eu trago uma explicação sobre cada uma das classificações e seus usos. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Single APIs e BFFs são abordagens que sempre trouxeram e vão continuar diferenciando o desenvolvimento de APIs. Mas você sabia como classificar essas APIs? 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Se não bastasse ter segregado os BFFs por times diferentes, agora é que eu não estou entendendo mais nada! Porque raios eu tenho que separar os BFFs por tipos de dispositivos distintos? Abaixo eu explico! 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Há ainda outro modelo organizacional, mas não só, como também necessidade de mercado, onde trago uma abordagem que traz benefícios quando precisamos atender nichos de dispositivos específicos. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Se o uso de BFF traz benefícios sobre uma única API, porque eu devo segregar isso em times distintos? Abaixo trago uma síntese, sobre o porque eu vejo vantagem nesse modelo organizacional. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Abaixo apresento um modelo organizacional do ponto de vista evolutivo e de manutenção dos BFFs. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Aqui eu apresento alguns benefícios sobre a aplicação da abordagem arquitetural BFF 👇🏻 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Na busca resolver a problemática de escala apresentada pelo uso de uma única API, o que temos? É aqui em o BFF (Backend For Frontend) começa a entrar no jogo 💡 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Muitas plataformas rodam com essa blue-print de arquitetura. Mas saiba o que isso pode acarretar 👇🏻 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Inicialmente, você já deve ter trabalhado o ainda deve trabalhar com uma arquitetura MSA com uma única API atendendo vários tipos de clientes distintos. Conforme apresentado abaixo 👇🏻 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024Criar APIs ñ é 1 atividade exclusivamente de sistemas distribuídos ou de arquiteturas de Microsserviços. Há sistemas atualmente q tem APIs públicas e q rodam sobre 1 monolito. O fato é q em 1 MSA (Microservice Architecture) APIs torna-se algo ainda mais complexo. 100
José Roberto Araújo @jrobertofaraujo.bsky.social · 23/09/2024{ System Design } Desenvolver APIs tornou-se essencial para a sobrevivência dos sistemas e aumento de suas capacidade de integração com outras plataformas. Você que já conhece sobre APIs já tinha ouvido falar em BFFs? E sabe as nuances de quando usá-lo? 110
José Roberto Araújo @jrobertofaraujo.bsky.social · 20/09/2024Só tenho uma coisa pra dizer: O algoritmo do Bluesky não é tão preciso quanto do do antigo e finado Twitter, mas eu prefiro estar aqui do que voltar a interagir no X! #ProntoFalei 000
José Roberto Araújo @jrobertofaraujo.bsky.social · 20/09/2024Aqui na EU existem órgãos fiscaliza dores sobre as apostas dos apostadores, dia, hora, quantia diária/mensal, casa de apostas, ou seja, todas as empresas de bets tem que, por norma, enviar relatórios diários e mensais para esses órgãos fiscalizadores. 010
José Roberto Araújo @jrobertofaraujo.bsky.social · 20/09/2024Tens o mesmo pensamento que eu! Quem audita tudo isso? Alguém/empresa imparcial? Quais critérios são analisados? 110
José Roberto Araújo @jrobertofaraujo.bsky.social · 20/09/2024Usa o recurso de PIN aqui do Bluesky, assim consegues pinnar posts que queiras ler depois 010
José Roberto Araújo @jrobertofaraujo.bsky.social · 20/09/2024Obrigado, Jess! A comunidade precisa ter sextas como essas 😁 010
José Roberto Araújo @jrobertofaraujo.bsky.social · 20/09/2024A piada ficou só pelo acrônimo: FODA 😜 110
José Roberto Araújo @jrobertofaraujo.bsky.social · 20/09/2024Com caminho da sua riqueza, está em você gastar sempre menos do que recebe, e investir o que sobrar. Claro que isso não se aplica à todas as pessoas (dadas as condições pessoais de cada indivíduo) Mas endeusar pessoas como essas, e depositar, nelas, o seu caminho para ficar "RICO", dá nisso :P 010
José Roberto Araújo @jrobertofaraujo.bsky.social · 20/09/2024{Design de Arquitetura} Entender os requisitos funcionais e não-funcionais, pensar nos componentes e em como eles vão se comunicar, distribuir, adequadamente, as responsabilidades em uma arquitetura não é um trabalho fácil. É simplesmente: FODA! insights.sei.cmu.edu/library/feat...insights.sei.cmu.eduFeature-Oriented Domain Analysis (FODA) Feasibility StudyThis 1990 report establishes methods for performing a domain analysis and describes the products of the domain analysis process. 091
José Roberto Araújo @jrobertofaraujo.bsky.social · 19/09/2024Desde então, eu ouço falar para não usar UUID como PK por razões semelhantes, às que em mencionei na mensagem anterior... Mas sinceramente, hoje em dia, eu não percebo mais a queda de performance como antes, pelo menos no Postgress, que é o BD que eu tenho usado mais, mesmo para projetos pessoais. 130
José Roberto Araújo @jrobertofaraujo.bsky.social · 19/09/2024Há alguns anos, o MS SQL tinha (ou ainda tem é assim), dentro da sua estrutura interna de páginas, usava uma folha inteira da B-TREE para armazenar apenas, e somente apenas, a PK, criando mais e mais profundidades dentro da estrutura interna. Impactando a reindexação dos dados em inserts e deletes. 010
José Roberto Araújo @jrobertofaraujo.bsky.social · 19/09/2024@rafaelponte.bsky.social EU HOJE entendo os porquês que usar um UUID como PK numa base de dados, não é tão prejudicial, devido ao avanço e evolução das base de dados. Por exemplo: Eu não sou expert em Postgres, apesar de estar começando a usar ele como BD. Mas...🧵 020