AWS Startups Blog
Affinio: Discovering Niche Communities Online
Affinio is a social network intelligence startup built around the idea that groups can best be analyzed by their social connections. Using clustering algorithms to find niche communities on Twitter, Pinterest, and Instagram, their platform lets you dive into the interests and relationships most central to a social network.
What led you to create Affinio?
For a previous product we worked on, we wanted to learn who was talking about us online — on Twitter, mostly. We looked at existing solutions and saw that most of them were content based, employing sentiment analysis of tweets and monitoring Twitter activity for popularity growth, etc. The problem is that there are an awful lot of people who used our products, even followed us online, that never tweeted about us or even tweeted at all. If looking at content for analysis couldn’t tell us what we needed to know, we figured that looking at network connections would.
What are some lessons you learned as you brought Affinio to market?
Doing analyses on large social networks is as much about noticing distinctions as it is noticing similarities. Although originally we expected to see a lot of “These groups behave in a similar way, and that’s relevant because we can share content to both of them,” more often it’s about “These groups behave in distinct ways; we should figure out how to change our approach to address both of them.” For some of our clients this means creating blog content to cater to multiple groups; for others it’s about changing advertising strategy.
Because of the wide range of use cases, we’ve gone through several iterations with the kind of data we present to a user. It can be easy to overshare data about a group (“The most shared link is this ice bucket challenge video”) but much harder to look at which data is uniquely relevant (“This commonly shared link is all but ignored in this community; here’s why”). It’s important to balance wanting to share lots of insights to address a wide range of users with curating the data we provide to show the most relevant parts.
What technologies do you leverage at Affinio?
Our reporting infrastructure is set up by having an Elastic Load Balancing load balancer in front of our Amazon EC2 instances running Apache2 as a web server. User profiles are stored in Amazon DynamoDB for login verification and report metadata storage. Requests are routed to the correct servers via Amazon Route 53. The entire front end is built on top of Ember.js with Woopra set up to track how our users are using the platform. Contact management with our customers is handled via Close.io.
A user request for a new report gets sent to Amazon SQS. A cron task continuously monitors the SQS queue and launches an Amazon EMR cluster when a new job is available to run. Once initialized, the EMR cluster runs several Hadoop jobs, which go out and fetch the raw data required for the current report. When the data fetching is complete, the EMR cluster runs several Apache Spark jobs to crunch and process the data. Once this is finished, the output report data is stored in Elasticsearch, and larger objects are stored in Amazon S3. Report and user metadata is pushed to DynamoDB. The user is then notified that the report is ready through Amazon SES.
Why did you choose to build on AWS?
AWS provides services that address several levels of our technology stack with benefits that are greater than the sum of its parts. The low cost and pay-for-use pricing is an ideal fit for a company like Affinio.
Being able to test new ideas on the fly by launching large numbers of varied compute architectures is ideal for processing and analyzing the vast amounts of social data that we acquire for our customers. Without AWS this would require us to obtain resources to set up, configure, and maintain systems that are not a core focus for our company. With AWS handling this workload we can focus on what really matters for our customers.
Where do you see Affinio going in the near future?
The best part about opening up a new source of data is that our clients get to decide how their new insights can best be applied. We’re working closely with our users to see how our data best serves them. Right now we give users the power to curate their digital strategy for unique communities within their audience. Next steps might be allowing them to monitor that strategy and see whether they need to make changes. Having the ability to parse social network graphs means we’re also open to the possibility of looking into “more-like-this-user” functionality for audience extension. Advertising also presents plenty of unique opportunities: Social networks like Twitter, Pinterest, and Instagram all have plenty of room to grow in providing catered experience in that space.
Any advice for aspiring entrepreneurs?
Listen to the feedback your customers provide — doubly so if it comes from data! Observing the way a client uses your product can tell you a lot about their expectations and use cases in ways that simply asking them cannot. Even more important is to allow that data to change your approach and your product if needed. No version of your app is worth being so in love with that you can’t change it to what your customers need.