CQRS (Command Query Responsibility Segregation) é uma abordagem para construir software altamente eficiente, escalável e de fácil manutenção. No entanto, os primeiros passos neste conceito não são fáceis.
DDD, Event Sourcing, Cache, Eventual Consistency ou Service Bus são apenas alguns exemplos de conceitos que nos são sugeridos sempre que pesquisamos sobre CQRS. Toda esta avalanche de informação contribui para que seja difícil adotar este conceito.
Mas CQRS será realmente tudo isto? É preciso dominar todos estes conceitos para o implementar?
Esta sessão vai ajudar-te a encontrar uma resposta para estas perguntas, a ter uma noção mais clara de quando se aplica e de como podes dar os primeiros passos para implementar este principio.
Usando um case real, a palestra irá abordar os diversos caminhos possíveis para mover uma aplicação para o Azure e as decisões tomadas pelo palestrante, inclusive as erradas. Iremos ver sobre servidor de aplicações, banco de dados, hospedagem de arquivos, segurança, produtividade e por último, mas não menos importante redução de custos!
Usando um case real, a palestra irá abordar os diversos caminhos possíveis para mover uma aplicação para o Azure e as decisões tomadas pelo palestrante, inclusive as erradas. Iremos ver sobre servidor de aplicações, banco de dados, hospedagem de arquivos, segurança, produtividade e por último, mas não menos importante redução de custos!
Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...Danilo Pereira De Luca
Nesta palestra pretendo falar uma das estratégias que tivemos para diminuir problemas na informação de pagamento das vendas de mais de 23 milhões de pedidos/mês divididos em mais de 120mil restaurantes, chegando a ser um dos principais tópicos de contact rate do Ifood. Uma das estratégias foi alterarmos quase todo modelo de dados em mais de 15 micro serviços distintos e como mitigar problemas na concorrência entre uma camada voltada para processamento de mais de 23 milhões de eventos em curtas janelas de tempo e outra camada de consulta de informações financeiras
Webinar - Como estruturar seu projeto de nuvem?brunorroda
Aos que participaram do webinar sobre como estruturar projetos de cloud e me pediram os slides...
Aqui temos os slides de apoio que eu e o Rafael Gonçalves Pereira usamos como guia para nosso batepapo no dia 16/04/2020 sobre como estruturar um projeto de nuvem, conhecer os modelos de negócios e de comercialização dos provedores, além de como enquadrá-los em suas necessidades.
Deixei meus contatos nele, caso queirão tirar dúvidas.
Por mais que eu ache que os slides sozinhos ficam sem contexto aqui vai...
Em breve faremos outro com convidados para contextualizar o tema para quem não assistiu.
#Cloud #Nuvem #IaaS #PaaS #SaaS #modelos #câmbio #impostos
Os 10 Mandamentos para realizar um projeto de upgrade SAPIssac Nolis Ohasi
Algum tempo atrás a boa parte dos clientes da SAP possuiam a versão do sistema de ERP R/3 4.x. Com a evolução de sua arquitetura tecnológica, plataforma SAP NetWeaver, assim como novas funcionalidades, a atualização de versão se torna impressindível. Issac Ohasi expõe sua experiência técnica na Liderança de Projetos de Upgrade: Os 10 Mandamentos para realizar um Upgrade.
Sessão apresentada na Reunião do Grupo de Estudos de Auditoria ASUG no dia 25 de Setembro de 2008.
Especificação de plataforma DaaS para laboratórios de informática Demis Gomes
Esta apresentação resume o período de trabalho entre 2014-2015 financiado pela FACEPE, no qual buscamos entender como uma plataforma DaaS poderia ser modelada para a aplicação em laboratórios de informática.
Esta apresentação foi mostrada na Jornada de Iniciação Científica da FACEPE, no dia 11 de julho de 2015.
Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...Danilo Pereira De Luca
Nesta palestra pretendo falar uma das estratégias que tivemos para diminuir problemas na informação de pagamento das vendas de mais de 23 milhões de pedidos/mês divididos em mais de 120mil restaurantes, chegando a ser um dos principais tópicos de contact rate do Ifood. Uma das estratégias foi alterarmos quase todo modelo de dados em mais de 15 micro serviços distintos e como mitigar problemas na concorrência entre uma camada voltada para processamento de mais de 23 milhões de eventos em curtas janelas de tempo e outra camada de consulta de informações financeiras
Webinar - Como estruturar seu projeto de nuvem?brunorroda
Aos que participaram do webinar sobre como estruturar projetos de cloud e me pediram os slides...
Aqui temos os slides de apoio que eu e o Rafael Gonçalves Pereira usamos como guia para nosso batepapo no dia 16/04/2020 sobre como estruturar um projeto de nuvem, conhecer os modelos de negócios e de comercialização dos provedores, além de como enquadrá-los em suas necessidades.
Deixei meus contatos nele, caso queirão tirar dúvidas.
Por mais que eu ache que os slides sozinhos ficam sem contexto aqui vai...
Em breve faremos outro com convidados para contextualizar o tema para quem não assistiu.
#Cloud #Nuvem #IaaS #PaaS #SaaS #modelos #câmbio #impostos
Os 10 Mandamentos para realizar um projeto de upgrade SAPIssac Nolis Ohasi
Algum tempo atrás a boa parte dos clientes da SAP possuiam a versão do sistema de ERP R/3 4.x. Com a evolução de sua arquitetura tecnológica, plataforma SAP NetWeaver, assim como novas funcionalidades, a atualização de versão se torna impressindível. Issac Ohasi expõe sua experiência técnica na Liderança de Projetos de Upgrade: Os 10 Mandamentos para realizar um Upgrade.
Sessão apresentada na Reunião do Grupo de Estudos de Auditoria ASUG no dia 25 de Setembro de 2008.
Especificação de plataforma DaaS para laboratórios de informática Demis Gomes
Esta apresentação resume o período de trabalho entre 2014-2015 financiado pela FACEPE, no qual buscamos entender como uma plataforma DaaS poderia ser modelada para a aplicação em laboratórios de informática.
Esta apresentação foi mostrada na Jornada de Iniciação Científica da FACEPE, no dia 11 de julho de 2015.
15. CQRS é…
• Abordagem
• Conjunto de práticas comuns
• Domínio Colaborativo
• Single Responsibility
• Workload Managment
• Mais leituras do que escritas
• Software de fácil manutenção a longo prazo
• Eficiência!
16. CQRS não é…
• Um padrão
• Uma receita
• “Don’t write a CQRS framework” by Greg Young
24. Base de Dados
• “Transações ACID são para bases de dados e não para sistemas” by
Paulo Gandra de Sousa
• 3ª Forma Normal
• Mas as Listagens não estão na 3FN
• ORM
• Será mesmo preciso?
25. Base de Dados
• View Model
• Tabelas simples, desnormalizadas
• O mundo não é só SQL
• Single source of truth is dead
• Cache
• Cache de Entidades vs Cache de Views
26. Eventual Consistency
• Dados não precisam de ser consistentes em todos os momentos
• Eventual Consistency !== Dados errados
• Stale data/Dados antigos
• Dados datados
27. Query Side: Resumindo…
• Não precisas de muito para começar
• Keep it Simple
• É uma cache e não uma BD
29. O que são Comandos?
• Regista a intenção do utilizador
• Nome no imperativo
• Pré-validação
• Business Rules
• Taxa de sucesso elevada
• Gere o Domain Model
30. Task Based UI
• Utilizadores não pensam em “modo CRUD”
• Captura a intenção do utilizador
• Uma página = Uma tarefa principal
38. O que é o Event Sourcing?
• O que mudou e quando mudou
• Nomes no passado
• Não há deletes
• View Model atualizado por eventos
• Eventos gerados pelos comandos
• Por oposição a Cache Invalidation
• Permite reprocessamento/playing back
40. Event Sourcing Architecture
View Model Data Layer
Business Layer
Service Layer
DB
Presentation Layer
Command
Query
Cache EventHandlers
41. Event Sourcing: Resumindo…
• O que aconteceu e quando aconteceu
• Permite um Audit Trail de tudo o que aconteceu no sistema
• Atualiza o View Model
44. Bounded Contexts
• Dividir um grande sistema em pequenas partes
• Domain Model independente
• Comunica com outros Bounded Contexts através de Eventos
• CQRS só nos Bounded Contexts em que precisas
• Não te lembra nada?
• Micro Serviços
45.
46. Resumindo…
1. Keep It Simple, start simple.
2. Escolhe um Domínio Colaborativo
• CQRS não é “Tudo ou Nada”
3. Separa as Queries dos Comandos
4. Simplifica o teu Query Side
47. Resumindo…
5. Implementa uma Base de Dados para o teu View Model
6. Captura a intenção do teu utilizador
7. Gere a carga de trabalho com processamento assíncrono
8. Implementa Event Sourcing
9. Evangeliza o negócio
Survs ajuda com os inqueritos e Nucleo de Estudantes de Informática do ISEP que nos ajudaram e apoiaram na divulgação e na organização
Para quem puder ir preenchendo, assim não chateio mais logo
É importante para recebermos nós feedback, e para darmos feedback aos nossos oradores
http://goqr.me/