Voltar ao blog Operações de SMS

Priorizar o tráfego A2P SMS quando a capacidade se degrada

Um guia operacional para distinguir OTP, alertas e notificações, atribuir prioridades internas e gerir o congestionamento sem confundir prioridade com entrega garantida.

Diagrama conceptual de filas separadas para OTP, alertas e notificações SMS durante uma degradação da capacidade

Porque uma fila partilhada pode prejudicar os fluxos críticos

Se mensagens de diferentes finalidades partilharem uma fila e o mesmo limite de envio, um pico de tráfego não urgente pode consumir recursos de que também precisam as mensagens sensíveis ao tempo. Separar os fluxos pode ajudar a controlar a forma como são aceites e processados nos sistemas geridos pela organização.

Essa separação é uma decisão operacional, não uma garantia de prioridade em toda a cadeia. A rota, os sistemas intermédios e a rede móvel podem aplicar os seus próprios controlos. Uma prioridade interna não garante que uma mensagem chegue primeiro nem que seja recebida no terminal.

  • Identifique onde existe uma fila partilhada: aplicação, plataforma de mensagens, ligação ao fornecedor ou outros componentes sob o seu controlo.
  • Registe os limites e as políticas configurados em cada segmento e identifique os que dependem de terceiros.
  • Não prometa ao produto ou à área de negócio uma entrega prioritária de ponta a ponta se isso não tiver sido demonstrado e acordado para a rota utilizada.
Porque uma fila partilhada pode prejudicar os fluxos críticos

Finalidade, criticidade e prioridade operacional não são a mesma coisa

A finalidade descreve por que motivo a mensagem é enviada: por exemplo, autenticar uma operação através de OTP, comunicar um alerta ou enviar uma notificação transacional. A criticidade traduz o impacto que o atraso ou a chegada fora de tempo teria para o utilizador. A prioridade operacional determina a forma como esse fluxo é tratado nos sistemas controlados pelo emissor.

Estas dimensões não devem ser confundidas com uma classificação regulamentar. A classificação interna serve para gerir a capacidade; por si só, não determina se uma mensagem é permitida, se existe consentimento válido ou que requisitos legais se aplicam. Verifique essas obrigações separadamente, de acordo com o caso e a jurisdição.

  • Identifique cada fluxo pela sua finalidade real e evite categorias vagas como «urgente» sem uma definição verificável.
  • Avalie a criticidade com base no impacto do atraso, no prazo de utilidade da mensagem e na possibilidade de concluir a operação por outro canal.
  • Mantenha as verificações de consentimento, conteúdo e conformidade independentes da prioridade operacional.
Finalidade, criticidade e prioridade operacional não são a mesma coisa

Defina classes de serviço com critérios verificáveis

Uma classe de serviço só é útil se as suas regras puderem ser explicadas e medidas. Em vez de atribuir prioridades por intuição, defina critérios com as equipas de operações, produto e os responsáveis pelo serviço: impacto para o utilizador, prazo de validade funcional, volume esperado e possibilidade de recuperação.

Por exemplo, um OTP pode perder utilidade depois de expirar o desafio de autenticação. Um alerta pode exigir atenção rápida, embora a urgência dependa do evento. Uma notificação informativa talvez possa ser adiada. São exemplos para conceber uma política interna, não uma classificação universal nem uma recomendação regulamentar.

  • Documente o objetivo de cada classe e os serviços que podem pertencer-lhe.
  • Defina o que significa uma mensagem ter expirado do ponto de vista da aplicação; não presuma que esse prazo se aplica automaticamente a todos os componentes da rota.
  • Determine se uma mensagem atrasada ainda tem valor ou se deve ser cancelada, substituída ou resolvida através de um processo alternativo.
  • Estabeleça quem pode autorizar exceções e como estas são revistas.

Isole as filas e controle o consumo de capacidade

O isolamento pode reduzir a concorrência direta entre fluxos nos componentes geridos pela sua equipa. A implementação concreta depende da arquitetura disponível: não presuma que uma ligação, interface ou fornecedor oferece filas independentes ou prioridades eficazes sem o confirmar.

Defina limites por fluxo e uma capacidade reservada ou partilhada de acordo com os contratos e controlos técnicos realmente disponíveis. Um limite mal concebido também pode deixar capacidade sem utilização ou bloquear tráfego importante; por isso, deve ser validado com dados próprios e revisto em condições normais e de degradação.

  • Separe as filas por finalidade ou classe apenas quando o sistema permitir controlar a sua admissão e o seu processamento.
  • Limite o volume dos fluxos que podem ser adiados, para que um pico não se sobreponha aos restantes sem controlo.
  • Garanta que os limites têm em conta a capacidade efetiva conhecida em cada segmento, sem presumir que a capacidade configurada localmente equivale à capacidade aceite pela rede.
  • Documente o que acontece às mensagens retidas quando a capacidade é recuperada.

Defina a admissão, o adiamento e o descarte antes do congestionamento

Quando a carga ultrapassa a capacidade disponível, o sistema precisa de regras explícitas para decidir o que aceita, o que retém e o que não deve reenviar. Sem uma política acordada, diferentes componentes podem acumular mensagens, repetir tentativas ou conservar tráfego que já perdeu utilidade.

As regras devem ser coerentes com o prazo de validade funcional, os limites reais da plataforma e as obrigações aplicáveis. O descarte deve ser deliberado e observável; não deve ser apresentado como uma solução automática para todos os casos.

  • Estabeleça que classes podem ser adiadas e em que condições deixam de ser aceites mensagens novas.
  • Defina quando cancelar mensagens expiradas ou duplicadas e como comunicar o resultado à aplicação que as originou.
  • Evite acumulações cuja antiguidade ultrapasse o período em que o conteúdo é útil.
  • Registe as decisões de rejeição, adiamento e descarte com uma causa identificável para análise.

Coordene as prioridades com o TPS, o backpressure e as tentativas repetidas

A prioridade interna deve ser compatível com os limites de débito, os sinais de controlo de carga e as políticas de novas tentativas existentes. Não aumente o envio nem repita pedidos indiscriminadamente para tentar recuperar um atraso: dependendo do comportamento da aplicação e dos componentes envolvidos, isso pode agravar a carga ou gerar duplicados.

Consulte a documentação de cada interface para verificar que respostas, limites e mecanismos de controlo estão disponíveis. A evidência técnica disponível aqui não permite afirmar um comportamento universal dos campos SMPP, do TPS, da expiração ou dos estados de entrega; configure cada integração com base na documentação contratual e técnica em vigor.

  • Defina limites de envio por ligação ou destino apenas se estiverem confirmados para a integração em causa.
  • Alinhe as novas tentativas com as respostas observadas, o prazo de validade da mensagem e as medidas de proteção contra duplicados.
  • Respeite os sinais de backpressure disponibilizados por cada componente; não os substitua por um aumento automático do débito.
  • Teste as alterações num ambiente controlado antes de as aplicar ao tráfego de produção.

Meça cada classe sem confundir aceitação, DLR e receção

A aceitação de um pedido por uma interface indica um resultado naquele ponto da cadeia; por si só, não equivale à receção no terminal. Um DLR é um relatório de estado cujo significado e consistência dependem da rota e da integração. Não o apresente como prova independente de que uma pessoa viu a mensagem.

Analise os indicadores por classe e destino quando esses dados estiverem disponíveis e forem comparáveis. Interprete a latência, a disponibilidade e os estados de entrega em conjunto com as respetivas definições, janelas de medição e limites de observação.

  • Distinga entre pedidos aceites, rejeições, estados de entrega comunicados e qualquer verificação independente disponível.
  • Observe o tempo entre o pedido e os eventos posteriores, indicando que pontos da cadeia são abrangidos pela medição.
  • Analise as mensagens pendentes, expiradas, duplicadas e reenviadas por classe.
  • Não compare métricas entre rotas ou períodos sem confirmar que as definições e as fontes são equivalentes.

Teste a degradação e documente a recuperação

Uma política de prioridades precisa de testes que reproduzam os riscos relevantes para a arquitetura em causa. Simule carga elevada, atrasos, rejeições e recuperação gradual apenas em ambientes autorizados e de forma a não afetar utilizadores nem redes externas.

Antes de ativar uma política, defina os responsáveis, os critérios para entrar e sair do modo degradado, as exceções e o procedimento de reversão. Mantenha um registo das alterações para poder explicar que fluxos foram limitados e porquê.

  • Teste se o tráfego que pode ser adiado evita consumir toda a capacidade controlável quando a carga aumenta.
  • Verifique se as mensagens retidas não são enviadas quando já perderam a sua utilidade.
  • Confirme o comportamento das novas tentativas, dos duplicados e das notificações aos sistemas de origem.
  • Defina quem pode alterar limites e prioridades, quem aprova exceções e como a configuração é revertida.
  • Analise os resultados com as equipas de operações, arquitetura e produto e com os responsáveis pela conformidade.
FAQ

Perguntas frequentes

Dar prioridade a um OTP garante que chega primeiro?

Não. Uma prioridade configurada internamente só pode influenciar os componentes em que é aplicada e controlada. Não demonstra prioridade em toda a rota, receção no terminal nem entrega dentro de um prazo.

OTP, alertas e notificações são classes regulamentares?

Não se deve presumir que sim. Neste guia, são exemplos de finalidades de mensagens que podem ajudar a conceber classes operacionais. As obrigações regulamentares e de consentimento devem ser avaliadas separadamente, de acordo com o conteúdo e o contexto aplicáveis.

Que métricas confirmam que um SMS foi recebido no telemóvel?

A aceitação de um pedido e um DLR não devem ser automaticamente confundidos com uma verificação independente da receção no terminal. Consulte o significado de cada estado na integração e comunique claramente a incerteza.

Como escolher um limite de envio por classe?

Não existe aqui um valor universal sustentado. Baseie o limite na capacidade efetivamente confirmada para a sua plataforma e para cada integração, defina o comportamento em caso de backpressure e valide a política com testes controlados e dados próprios.

Devo reenviar todo o tráfego adiado quando a capacidade é recuperada?

Não necessariamente. Antes de tentar novamente, verifique se a mensagem ainda é útil, se já expirou ou foi processada e que política de duplicados se aplica. As novas tentativas devem respeitar a documentação da interface e os limites existentes.

Fontes consultadas

  1. SMPP v3.4 Issue 1.2SMPP Developers Forum
  2. RFC 9110: HTTP SemanticsIETF
  3. 3GPP specifications by series3GPP
  4. ITU-T Recommendation E.164International Telecommunication Union
  5. GSMA networks resourcesGSMA