Stripe: Open Source
stripe.com
Stripe: Open Source
1–10 of 74 posts
Re: Stripe: Open Source
#2Re: Stripe: Open Source
#3I would have to look at my commit history to remember what exactly were the differences though. I think it could match the various credit card types with fewer digits entered or was better for cvv validation of amex cards.
Re: Stripe: Open Source
#4Re: Stripe: Open Source
#5(I work at Stripe.) We're also accepting applications for our second Open-Source Retreat: https://stripe.com/blog/open-source-retreat-2016
Re: Stripe: Open Source
#6Agreed that multilog is arcane and weird but what are the actual problems with it that unilog solves?
Re: Stripe: Open Source
#7Re: Stripe: Open Source
#8Re: Stripe: Open Source
#9Would be interested to hear from the devs about the actual reasons they chose to write unilog ( https://github.com/stripe/unilog ) instead of using multilog (which ships with Daemontools). Agreed that multilog is arcane and weird but what are the actual problems with it that unilog solves?
This actually took a fair amount of digging! We've been using some version of unilog for over 4 years now (longer than I've been at Stripe), and we'd mostly forgotten why we switched. What follows is more the result of historical exploration and guesswork than authoritative statement of original truth.
I'm fairly confident that the impetus for unilog was timestamp prefixes for our log lines. We wanted timestamps (so that we weren't dependent on all applications adding them). multilog is capable of doing writing out timestamps, but it formats them with TAI64N. We wanted something more human-parseable.
Once we had it, we started adding other features. These days, I'd say the most useful thing unilog does for us is buffer log lines in memory. We would occasionally see disk writes on EC2 hang for long enough that the in-kernel (64k) pipe buffer would fill up and cause applications to stall.