Sobes.tech
Middle — Middle+

Explique o que significa a abreviatura CQRS e como ela é usada na arquitetura de sistemas

sobes.tech IA

Resposta da IA

CQRS (Segregação de Responsabilidade de Comando e Consulta) é um padrão de arquitetura que separa as operações de alteração de estado (comandos) das operações de leitura de dados (consultas).

Ideia principal:

  • Comandos (Commands) — operações que alteram o estado do sistema (por exemplo, criar, atualizar, eliminar dados).
  • Consultas (Queries) — operações que apenas leem dados, sem modificá-los.

O uso de CQRS permite:

  • Otimizar a leitura e escrita separadamente, usando modelos de dados diferentes ou até bancos de dados diferentes.
  • Simplificar a escalabilidade, pois leitura e escrita podem escalar independentemente.
  • Melhorar a segurança e o controle, delimitando os direitos para comandos e consultas.

Exemplo em C#:

// Comando
public class CreateOrderCommand {
    public int ProductId { get; set; }
    public int Quantity { get; set; }
}

// Manipulador de comando
public void Handle(CreateOrderCommand command) {
    // Lógica de criação de pedido
}

// Consulta
public class GetOrderQuery {
    public int OrderId { get; set; }
}

// Manipulador de consulta
public OrderDto Handle(GetOrderQuery query) {
    // Lógica para obter dados do pedido
}

Assim, CQRS ajuda a dividir responsabilidades e a aumentar a flexibilidade da arquitetura.