StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Home
  2. Companies
  3. SparkPost
SparkPost

SparkPost

www.sparkpost.com

The World’s Fastest-Growing Email Delivery Service

48tools
5decisions
262followers
OverviewTech Stack48Dev Feed

Tech Stack

View all 48
Stack by Layer
Application & Data23
Utilities8
DevOps13
Business Tools4
Application & Data
23 tools (48%)
Utilities
8 tools (17%)
DevOps
13 tools (27%)
Business Tools
4 tools (8%)

Application & Data

23
Amazon EMRAWS GlueAmazon RedshiftAngularJSAmazon EC2BootstrapNGINXC langLuaNode.jsCassandraExpressJSHTML5JavaScriptDropboxRedisGoogle DriveAmazon CloudFrontReduxES6JekyllAmazon S3AWS Lambda

Utilities

8
Amazon Kinesis FirehoseAlgoliaAPI BlueprintGoogle AnalyticsSlackSparkPostPostmanAmazon SQS

DevOps

13
BabelBowerStatusPage.ioJaegerAnsibleJiraGitHubGruntnpmSentryWebpackESLintBamboo

Business Tools

4
D3.jsConfluenceReactAsana

Latest from Engineering

View all
Chris McFadden
Chris McFadden

VP, Engineering at SparkPost

Apr 7, 2019

Needs advice

We send over 20 billion emails a month on behalf of our customers. As a result, we manage hundreds of millions of "suppression" records that track when an email address is invalid as well as when a user unsubscribes or flags an email as spam. This way we can help ensure our customers are only sending email that their recipients want, which boosts overall delivery rates and engagement. We need to support two primary use cases: (1) fast and reliable real-time lookup against the list when sending email and (2) allow customers to search, edit, and bulk upload/download their list via API and in the UI. A single enterprise customer's list can be well over 100 million. Over the years as the size of this data started small and has grown increasingly we have tried multiple things that didn't scale very well. In the recent past we used Amazon DynamoDB for the system of record as well as a cache in Amazon ElastiCache (Redis) for the fast lookups and Amazon CloudSearch for the search function. This architecture was overly complicated and expensive. We were able to eliminate the use of Redis, replacing it with direct lookups against DynamoDB, fronted with a stripped down Node.js API that performs consistently around 10ms. The new dynamic bursting of DynamoDB has helped ensure reliable and consistent performance for real-time lookups. We also moved off the clunky and expensive CloudSearch to Amazon Elasticsearch Service for the search functionality. Beyond the high price tag for CloudSearch it also had severe limits streaming updates from DynamoDB, which forced us to batch them - adding extra complexity and CX challenges. We love the fact that DynamoDB can stream directly to ElasticSearch and believe using these two technologies together will handle our scaling needs in an economical way for the foreseeable future.

473k views473k
Comments
Chris McFadden
Chris McFadden

VP, Engineering at SparkPost

Apr 7, 2019

Needs advice

We use nginx and OpenResty as our API proxy running on EC2 for auth, caching, and some rate limiting for our dozens of microservices. Since OpenResty support embedded Lua we were able to write a custom access module that calls out to our authentication service with the resource, method, and access token. If that succeeds then critical account info is passed down to the underlying microservice. This proxy approach keeps all authentication and authorization in one place and provides a unified CX for our API users. Nginx is fast and cheap to run though we are always exploring alternatives that are also economical. What do you use?

294k views294k
Comments
Chris McFadden
Chris McFadden

VP, Engineering at SparkPost

Apr 3, 2019

Needs advice

The recent move of our CI/CD tooling to AWS CodeBuild / AWS CodeDeploy (with GitHub ) as well as moving to Amazon EC2 Container Service / AWS Lambda for our deployment architecture for most of our services has helped us significantly reduce our deployment times while improving both feature velocity and overall reliability. In one extreme case, we got one service down from 90 minutes to a very reasonable 15 minutes. Container-based build and deployments have made so many things simpler and easier and the integration between the tools has been helpful. There is still some work to do on our service mesh & API proxy approach to further simplify our environment.

162k views162k
Comments
Chris McFadden
Chris McFadden

VP, Engineering at SparkPost

Apr 3, 2019

Needs advice

We migrated most of our APIs last year from using our self managed Cassandra cluster to a mix of Amazon DynamoDB and Amazon RDS for Aurora. This has reduced the operational overhead for our team and greatly improved the overall reliability of our service. The new dynamic capacity in DynamoDB has been super helpful for handling bursty traffic.

48k views48k
Comments

Tools Owned

SparkPost
SparkPost
Verified
142 followers135 stacks

Team on StackShare

2
Jose Zamora