smpp-connector — Service Readiness
Status: populated | Last updated: 2026-04-18
Production Readiness Checklist
Functional
-
bind_transceiverestablishes sessions with all assigned operators - Fallback to
bind_transmitter+bind_receiveronESME_RINVCMDID -
submit_smPDUs transmitted for GSM7 and UCS2 messages - Long message CSMS segmentation implemented and tested
- Long message TLV (
message_payload) implemented and tested -
deliver_smDLR PDUs parsed andsms.dlr.inboundpublished -
MessageCorrelationrecords written onsubmit_sm_resp -
operator.healthevents published on BOUND/UNBOUND/FAILBACK transitions -
enquire_linkheartbeat sends every 30 s; UNBOUND triggered on 10 s timeout - Exponential backoff reconnection (5 s → 60 s cap) implemented
- Primary/backup failover triggers correctly on UNBOUND
- TPS Redis sliding-window throttling enforced per operator
- SMPP credentials fetched from operator-management-service (never hardcoded)
Testing
- Unit test coverage ≥ 80%
- Integration tests pass with mock SMPP server + Testcontainers
- Pact contract tests pass for
DlrInboundEventconsumer contract - Full flow test: dispatch → submit_sm → DLR →
sms.dlr.inboundevent verified end-to-end in staging
Security
- SMPP passwords never logged or persisted
-
toandtextfields not logged (PII protection) - NATS NKey credentials mounted via Kubernetes Secret
- NetworkPolicy restricts egress to MNO IP allowlist
- mTLS enforced on operator-management-service API calls
- Kubernetes Secret usage verified (no hardcoded values in manifests)
Observability
- All Prometheus metrics emitting correctly (verified in staging)
-
SmppConnectorSessionUnboundalert tested and confirmed in PagerDuty - Structured JSON logs visible in log aggregation
- OpenTelemetry traces confirmed in staging tracing backend
Deployment
- Docker image published with correct tag
- Kubernetes Deployment with 2 replicas applied to staging
- Rolling update tested (active SMPP sessions survive pod restart)
- Resource limits validated under sustained 100 TPS load
Operational
- MNO SMPP credentials loaded in Vault and operator-management-service
- MNO production SMPP endpoint IP/port confirmed and NetworkPolicy egress rule added
- On-call runbook written with steps for: session down, credential rotation, TPS breach
- TTL sweep job tested for
smpp.message_correlations