Novas tecnologias surgem todos os dias. Junto com elas, a dúvida se estamos fazendo as escolhas certas. Como saber o que é mais correto: “abraçar” o hype e correr o risco de usar uma tecnologia nova e excitante, mas instável, ou se apoiar em técnicas e tecnologias consolidadas, mais seguras, mas também mais próximas da […]
“Arquitetura Egg” vs “Arquitetura Bacon”
Mesmo depois de tantos anos de mercado, ainda me surpreendo com as “lições” que nossos clientes nos ensinam. Aqui compartilho uma conversa recente: Cliente: Elemar, estamos com problemas de relacionamento com o time de “arquitetura egg” da companhia! Eu: Arquitetura egg? Cliente: Sim! Pense no café da manhã… Você tem ovos e bacon. Certo? Eu: […]
Por que adotar Kafka para mensageria?
Apache Kafka é uma plataforma robusta para suportar streaming distribuído. Dentre seus diversos atributos positivos, nos chama a atenção como a opção de facto para CEP (Complex Event Processing). Entretanto, temos percebido que a solução tem sido utilizada, com frequência, como mecanismo para suportar mensageria. Embora entendamos como uma alternativa viável, não a consideramos a mais […]
Palestra “Performance extrema, execução segura e código elegante com Rust”
Apresentamos na QCON, edição de São Paulo, 2019, um breve resumo do conjunto de features que explica o porquê de gostarmos tanto da linguagem Rust. Na palestra, mostramos como Rust ajuda a escrever código com performance extrema, execução segura (livre, por exemplo de memory leaks) e código bem elegante. A palestra está no Youtube e […]
The Art of Scalability
The Art of Scalability, de Martin Abbott e Michael Fischer, mostra como organizar empresas e sistemas para a escalabilidade. O livro cobre aspectos como arquitetura, pessoas, processos, tecnologias. A leitura é simples e, com algum “esforço”, é compreensível mesmo para pessoas não técnicas. As ideias e conceitos compartilhados no livro são resultados de aprendizados de […]
Arquitetura de Software contempla Desenvolver, Manter, Entregar e Operacionalizar
Robert Martin foi feliz em destacar que a arquitetura de software ingênua costuma dar ênfase a prática de desenvolvimento e de manutenção e ignorar o deployment e a operação. Por outro lado, a boa arquitetura de software da enfoque a essas quatro atividades. Desenvolvimento [tweet]Se desenvolver um software for uma atividade difícil, então, dificilmente esse software […]
Microsserviços eliminando a ESB
Recuperando o ponto onde paramos no post anterior, analisemos, mais uma vez, a arquitetura em alto nível de grande parte dos sistemas corporativos que temos encontrado. Há aqui, claramente, “dois mundos”. De um lado, mais moderno, temos as APIs e o Gateway conectando a empresa com o mundo exterior. Do outro, legado, temos os sistemas […]
Microsserviços para empresas que implementaram SOA (e ESB)
Há tempos estamos destacando os desafios de arquiteturas baseadas em microsserviços. Inclusive, já fomos muito “vocais” alertando que sua empresa provavelmente não precisa dessa complexidade. Entretanto, há exceções. Nessa série falaremos sobre cenários onde microsserviços fazem sentido. Além disso, vamos tentar indicar práticas e padrões que ajudem na jornada de adoção. NOTA: É interessante que […]
Event-carried state transfer
As we discussed here in a previous post, the use of event notifications allows us to develop elegant solutions to solve potentially complex problems. How can two or more applications (potentially services or microservices) that use data from a particular entity type work as an eventually consistent system, with minimal coupling, without overloading network and […]
Origem e significado de REST e RESTful
O mercado define REST como serviços HTTP que fornecem recursos, geralmente em JSON, através dos verbos GET, PUT, POST e DELETE. Embora, esses serviços possam ser REST, o conceito vai além. Nosso sentimento é que, por desconhecer as ideias que nortearam o surgimento do conceito, implementadores de REST acabam perdendo boas oportunidades de constuir arquiteturas […]