HN 표시: 이메일 API 벤치마크 – 이메일 제공업체를 위한 실제 성능 데이터
hackernews
|
|
🔬 연구
#knock
#review
#벤치마크
#성능 테스트
#이메일 api
#이메일 제공업체
원문 출처: hackernews · Genesis Park에서 요약 및 분석
요약
알림 서비스 플랫폼 Knock의 CTO가 개발자들을 위해 이메일 공급자별 실제 성능 데이터를 공개하는 대시보드 'email.info'를 출시했습니다. SendGrid와 Postmark 등 10개 주요 제공자에 대해 지난 90일간의 수십억 건 API 요청을 분석하여, 평균 응답 시간과 오류율, 그리고 요금제 비교까지 제공합니다. 특히 SendGrid가 22ms의 매우 빠른 응답 속도를 기록한 반면, 제공자 간 p99 지표에서는 유의미한 성능 격차가 관찰되었습니다.
본문
Email API benchmarks Real-time performance, reliability, and uptime benchmarks for top email providers, powered by proprietary data from billions of messages sent through Knock. Performance at a glance Sort and filter providers by response time, error rate, delivery speed, and growth. | Provider | Message volume | Median response time | Error rate | Growth | |---|---|---|---|---| | SendGrid | 500M+ | 22ms | 0.00% | 2nd | | Postmark | 25M–100M | 32ms | 0.03% | 4th | | Resend | 10M–25M | 78ms | 0.08% | 1st | | Mailtrap | <1M | 124ms | 0.00% | 7th | | Mailgun | 100M–500M | 125ms | 0.00% | 5th | | Mandrill | 1M–10M | 133ms | 0.01% | 9th | | Amazon SES | 25M–100M | 144ms | 0.00% | 3rd | | Mailersend | <1M | 264ms | 0.01% | 8th | | Sparkpost | <1M | 287ms | 0.21% | 10th | | Mailjet | <1M | 414ms | 0.00% | 6th | Compare providers Pick any two providers for a head-to-head comparison of performance, reliability, and pricing. | Provider | Volume | Median response time | Error rate | Growth | |---|---|---|---|---| Amazon SES | 25M–100M | 144ms | 0.00% | 3rd ↑ | Resend | 10M–25M | 78ms | 0.08% | 1st → | Explore provider benchmarks Explore detailed performance benchmarks, feature comparisons, and pricing for each provider. Our methodology How we collect, measure, and present the data behind these benchmarks. Time range All metrics reflect a trailing 90-day window. Point-in-time load tests don't capture the variability of a production system handling thousands to millions of requests daily, so we use a longer window to surface the effects of system congestion and public incidents without penalizing providers that are actively improving. Message volume Volume represents the total number of sampled email API requests routed through Knock during the period. Because Knock is an orchestration layer, we cannot influence the sending patterns of our customers, so volume varies by provider. To normalize for this, we group providers into volume bands (e.g. <1M, 1M–10M, 10M–25M) that indicate how statistically confident we are in the observed metrics. Providers with low volume are flagged so you can weigh the results accordingly. Response time Response time is measured as the elapsed time from when Knock sends an API request to when the provider returns a 200 status indicating message acceptance (a "sent" event in Knock). We compute percentiles (p50, p90, p95, p99) using the quantile function in ClickHouse, which uses an approximate algorithm with up to 2% error tolerance. In practice, this produces values within 0–3ms of exact percentiles for typical latency distributions, well within the margin of meaningful difference when comparing providers. The measurement includes HTTP connection pooling time and network latency, applied consistently across all providers. Each API request is measured individually — if Knock's automatic retry logic triggers a new request, that retry is recorded as a separate measurement with its own response time rather than being added to the original request's duration. Error rate Error rate is the ratio of requests that received a 5xx status code (500, 502, 503, etc.) to total requests for the period. We treat all 5xx responses equally — whether a 503 Service Unavailable indicating an overloaded server or a generic 500 Internal Server Error — because they either indicate provider-side issues or represent cases where input could be rejected with a more instructive 4xx code. Within Knock's retry logic, most 5xx codes are retryable, so a single request can produce multiple error entries if each retry also fails. We believe this accurately represents the provider's availability during those periods. Channel growth In Knock, a connection to a provider API is modeled as a channel. Growth rank (1st through 10th) reflects how many new channels were created for each provider during the 90-day window. To detect directional trends, we split the window into two 45-day halves and compare them, producing the trend indicators (up, down, or stable) shown alongside each rank. Public incidents and status page updates On provider detail pages, we integrate with each provider's public status page via RSS or API and overlay reported incidents on the performance data we collect. Our view is that a severe degradation in measured performance should correspond to a status page entry, and the degree of correlation between observed metrics and public incidents is a useful signal for how a provider handles incident management. Incidents are not inherently negative — status page updates paired with observed degradation are indicators of engineering discipline. Pricing estimates When modeling pricing curves and cost-per-email estimates, we select the lowest-cost plan that covers a given sending volume. This means we optimize purely for volume — we do not factor in premium features like dedicated IPs, advanced analytics, or priority support that may only be available on higher-tier plans. If a provider offers multiple plans at the same
Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.
공유