Após meses de desenvolvimento, o Brighter V10 RC1 finalmente está disponível! Listado como 10.0.0-preview.6
nas releases, esta versão introduz melhorias significativas, mudanças que quebram compatibilidade e a base para atualizações futuras. Abaixo, detalhamos as principais atualizações e o que elas significam para desenvolvedores.
Novas Funcionalidades
Aqui estão algumas das novas funcionalidades disponíveis no Brighter V10:
Mapper Padrão
O Brighter agora suporta um mapeador de mensagens padrão para tipos não registrados. Por padrão, ele usa serialização JSON, mas os desenvolvedores podem optar pelo CloudEvents (modo JSON) ou mappers personalizados. Isso simplifica a configuração mantendo a flexibilidade.
CloudEvents
O Brighter integra-se ao padrão CloudEvents para arquiteturas orientadas a eventos. O modo binário é o padrão, configurando automaticamente os cabeçalhos para compatibilidade, embora o modo JSON permaneça opcional via atributos ou o mapeador padrão.
Agendador
Um agendador embutido em memória permite o agendamento de mensagens/comandos/eventos. Além disso, o Brighter agora integra-se a sistemas externos como AWS Scheduler, Hangfire, Quartz.NET e Azure Service Bus.
Suporte a MongoDB
O MongoDB agora é totalmente compatível, incluindo padrões de outbox, inbox, claim-check e bloqueio distribuído. Isso amplia a compatibilidade do Brighter com ecossistemas NoSQL.
Biblioteca C# do RabbitMQ V7
Desenvolvedores podem agora utilizar o mais recente cliente C# do RabbitMQ (V7) para melhor desempenho e compatibilidade com fluxos de mensagens modernos.
Alterações Significativas
A seguir, algumas mudanças importantes na V10:
Revisão das Interfaces Assíncronas
A maioria das interfaces agora oferece versões síncronas e assíncronas, alinhando-se às práticas modernas do .NET e garantindo melhor escalabilidade para aplicações baseadas em async.
Mapper
A nova interface IAmAMessageMapperAsync
lida com pipelines assíncronos. Além disso, MapToMessage
agora aceita um parâmetro de publicação, permitindo mapeamento dinâmico com base nas configurações de publicação (ex.: corresponder a RequestType).
Redução da Obsessão por Primitivos
Tipos primitivos como string para IDs e chaves de partição foram substituídos por tipos dedicados (Id
, PartitionKey
).
Registro de Injeção de Dependência
O processo de registro para DI da Microsoft foi redesenhado, exigindo atualizações nas configurações de inicialização para compatibilidade com a V10.
Funcionalidades Futuras (RC2/Versão Final)
Enquanto a RC1 estabiliza as mudanças centrais, o trabalho continua em funcionalidades adicionais:
Adaptadores de Framework
Adaptadores para JustSaying
e MassTransit
simplificarão a integração com essas bibliotecas populares, reduzindo código repetitivo.
Suporte ao AWS SDK v4
Um novo pacote adicionará compatibilidade com o AWS SDK v4, permitindo migração gradual da v3 sem interromper fluxos existentes.
Integração com RocketMQ
O suporte ao RocketMQ permitirá um sistema de mensagens escalável e distribuído, ideal para arquiteturas de alto throughput.
Suporte ao Google Cloud Platform (GCP)
O Brighter expandirá suas capacidades em nuvem com integrações ao GCP, incluindo Pub/Sub, GCS, Firestore e Spanner.
Aprimoramento de Tipos de Referência Anuláveis
Suporte melhorado às funcionalidades de anulabilidade do C# reduzirá exceções nulas em runtime e aumentará a confiabilidade do código.
Conclusão
O Brighter V10 RC1 marca um marco importante, equilibrando inovação e compatibilidade com versões anteriores. Embora as mudanças que quebram exigirão migração cuidadosa, elas pavimentam o caminho para um framework mais robusto e flexível. Fique atento à RC2 e à versão final, que ampliarão ainda mais as capacidades do Brighter em plataformas de nuvem e ecossistemas de mensagens.