12 Apr 2018
At Honeybadger we have standard retention periods for data from which our customers can choose. Based on which subscription plan they choose, we’ll store their error data up to 180 days. Some customers, though, need to have a custom retention period. Due to compliance or other reasons, they may want to have enforce a data retention period of 30 days even though they subscribe to a plan that offers a longer retention period. We allow our customers to configure this custom retention period on a per-project basis, and we then delete each error notification based on the schedule that they have set. Since we store customer error data on S3, we need to keep track of every S3 object we create and when it should be expired so that we can delete it at the right time. This blog post describes how we use S3, DynamoDB, Lambda, and the Serverless Framework to accomplish this task.
I can’t recall having done a year-in-review type of blog post before,
but when Patrick suggested it recently, it seemed like a great idea, so
I thought I’d give it a shot.
A while back I changed the stack I used for publishing this blog with
the hope that I would write more because it would be easier to publish.
Looking back at how little I’ve written since I’ve made that change, I
can see that that didn’t work out so well. :) I’m not going to change
my stack again (just yet), but I am going to try and write a bit more.
Hopefully it won’t be another year before my next post.
At Honeybadger this morning we had a
failure of our SolrCloud cluster (of three servers). Each of the three
servers has a replica of the eight shards of our notices collection.
Theoretically this means that two of the three servers can go away and
we can still serve search traffic. Sadly, reality doesn’t always match
Rob Walling wrote a great post yesterday
about building up your bootstrapped business over time by taking on
smaller projects before diving into big ones. His post reminded me of
Amy Hoy’s Stacking the Bricks philosophy, and I
think that taking the approach of learning to walk before learning to
run makes sense. Rob’s post made me reflect on my experience building
products that have gone from producing no income, to putting some change
in my pocket, to providing a nice income for my family, and I thought it
would be fun to share.