Tonight on GeekNights, we consider microservice architecture using Amazon product pages as an example. In the news, an EU copyright law that threatened the Internet as we know it was rejected (so far), and Valve leaked Steam game player counts in a novel way.
We can't be there this year, but if you're anywhere near Hartford Connecticut this coming weekend, you should definitely check out ConnectiCon! If you're near New York, you should hit up the Game Devs of Color Expo!
Things of the Day
For me the Tour de France is exactly like baseball. It’s not to be watched but followed. Just check in with the results for the first few weeks and watch some highlights clips. And then, like baseball, it becomes watchable in the final week where the top racers are doing crazy breakaways in the mountains.
Also, if you race side by side over the Queensborough Bridge, I predict one of you will break something. Rym’s “we can’t possibly crash” goes against everything I’ve ever experienced in impromptu amateur races.
More people have hurt themselves after the words “hey guys, watch this” but “I’ll race you” must be in the running for second best portent for stupid injury.
I submit “fuck it” would also be in the running.
I work at an e-commerce startup. It is more complicated than you know.
“things are more complicated than how scrym describe it” is essentially the summary of Geeknights as a whole.
I think the audience for going into that level of detail in an audio-only podcast is vanishingly small.
The other complication is that it’s not like I can really get into the details of my actual job. I can’t use examples from… the last decade?
Saw a link to an article just now that is a perfect example of someone cutting in the wrong place.
In the end they got the right answer, which is that the entire application is one service. They had previously cut too small and made nanoservices with separate parts of the same application being separated.
What the article gets wrong is that they are trying to claim that a monolith is better than microservices. That is wrong. The truth is that their business is so tiny that it only has one service. If they were a larger business with more going on, they would have more services just like the single service they now have.
There is a great story about Amazon that Bezos says “If two parts of the business have to have a meeting, then the business is already not working.”
Amazon is the perfect example of a microservice-based business! Not just the website but every segment. Mechanical Turk? Just use the API. Etc etc. They then expose them to outside businesses to use for, pretty much, pure profit, as they are always their own best and biggest first customer. For a few years Amazon was only making a profit due to charging for their micro services.
As for the “people who bought this also bought” section, I once met the guy who first developed that, and now he’s a crazy rich guy… who also happens to be a juggler. I’m sure it’s still a big driver of sales on the page. I know I use it on small household items.
Why are you guys using your front break rather than your rear brake?
I came up mountain biking, specifically hill climbing and in the woods, generally you’re either using your rear brake or both brakes, never just the front. Too much instability in the front break.
Only time I used just the front was to show off and get my rear wheel as high as I could get it without falling. Like kids do.
Front brake is the most powerful and most effective brake. It’s biking 101. Even on my MTB, I use the front brake as my primary stopper unless I’m on a steep decline or in the middle of a turn. Same with a motorbike.
Rear brake contributes very little to actual stopping power in many cases. I use it primarily when I’m shedding speed as opposed to stopping, or when I know that due to my turn radius/speed/lean the front brake would be a problem.
If I’m shedding speed on a long downhill, I alternate front and rear.
Sure, I use my rear brake in a hard stop if the tire is still on the ground. But it’ll lock well before it’ll add much stopping power.
I find to this day that a LOT of people are afraid of their front brake. My MTB instructor said it best. “The perfect stop is when your rear tire is an inch off the ground the instant you’re not moving forward.”
I’m not afraid of it, I’ve just gone over the handlebars more than once. I mean, all in the woods on weird and strange terrain features, and yes if I’m trying to stop stop, I use the front break and back break, unless I’m on a loose surface like dirt or gravel in which case I use the rear with the intention of it locking and using the lock to turn the whole bike sideways.
I sometimes see this referred to as a skid stop. It isn’t good on streets or sidewalks though, but again I’m not accustomed to biking on that. I wonder how few of my skills from years and trophies actually transfer to biking in a city.
At the moment my company has like… a kit-kat bar, and when something gets too big or important you break off that piece into a self-contained service. Everything hits the api server, the api server basically responds with json to everything, and things are constructed such that if eventually some aspect of things (like say batch processing or reporting) gets too big/needs different technology/etc it gets broken off into its own service that the api server calls that get their own read only databases and what-not. I’m also wanting to play around with aws lambda for it a bit, because we might need something with thirty gigs of ram… but only for like five minutes of work at a time.
Probably pretty well. Even on a road bike, I can hop curbs and deal with bad roads fluidly, where the road-only people I’ve ridden with struggle. There was a long gravel section near the end of the HVRR last year, and I saw a lot of people walk it despite having wider tires than me.
The only time I’ve ever taken forward tumbles was from misjudging a landing or hitting something, not from braking.
Skid stops though… On a hybrid bike on a road, you’d literally just flip over sideways. It’s really hard to properly bail on road bike the way I would on MTB.
One thing I will say: braking on a street is almost always in a straight line. If I’m braking and turning at the same time, I’ve made poor decisions up to that point. Big difference from MTB.
See yeah, those all sound like massive differences. I may have to get comfortable with a different type of stop to really bike to my own satisfaction in the city.
As to going over the handlebars, Most of mine were from times where my front tire goes down and my back tire does not, like going into a small trench or very large pothole, then panicking and hitting both breaks, but since all weight is on the front tire that’s the only one that stops… and over I went.
This is extremely easy to deal with if you see it coming, if you don’t though, up and over.
My last one was on a long slight declining single track. Super narrow with some twists and turns, grass and dirt on either side.
Recovering from a fast turn into a straightaway, I slid a little to far to the right onto the edge of the track. Tried to play it cool and ease back onto the track without making a turn. Hit a bump, into the track, off the other side, and bounced. Threw me right over the handlebars. I tucked and rolled fine, but there was a treestump that I hit pretty hard.
As someone who works at Amazon, though not on the retail side, your assessment of how product pages (or listings as we call them) work is correct, so nothing has really changed in the last several years from that perspective. Overall the way you talked about the architecture was accurate and easy to understand. I will point out that our services do have one common dependency, which is the security and access layer, but obviously not important to the discussion.