Live data from Hacker News

The 2002 mandate for internal communication systems at Amazon

sametab.com

141–150 of 187 posts

Re: The 2002 mandate for internal communication systems at Amazon

#141
post #132

This was not exactly a Jeff Bezos mandate but the result of an engineering brainstorm. The mandate came more out of a "how to scale Amazon for the next decade" discussion. In large companies, one where distributed/independent teams are as important as distributed systems this ended up being the only way to operate. Initially, during the good old days of Amazon, there was what you'd call a single datawarehouse. It mad…

Ok, we'll take Bezos out of the title above.

Thank you, dang! This is certainly a more accurate title.

Re: The 2002 mandate for internal communication systems at Amazon

#142
post #107
post #40

> While the third point makes all the difference in the world, what Amazon really did get right that Google didn’t was an internal communication system designed to make all the rest possible. > Having teams acting like individual APIs and interacting with one another through interfaces over the network was the catalyst of a series of consequent actions that eventually made possible the realization of AWS in a way tha…

A protocol buffer is a serialized data object, not a service API. It doesn't (and didn't) prevent anyone from using shared memory, shared database, or shared flat files to communicate. Also, 2002 is time immemorial. Google was founded in 1998.Protocol buffers were invented in 2001.

Protobufs were invented for Stubby, the RPC layer which is apparently used for absolutely everything inside Google. It's existed since at least 2001, and uses protobufs as the RPC serialization. gRPC is based on Stubby (though not the actual implementation).

Re: The 2002 mandate for internal communication systems at Amazon

#143
post #56
post #43

Earlier quoted context omitted.

> Google has worked this way since time immemorial. Do internal Google services exclusively use the Google Cloud Platform APIs? The implication is that internal Amazon services exclusively use AWS APIs. I've never worked at either company though, so I don't know if it's true. Perhaps someone could clarify.

No, because internal APIs for the same backends are more powerful and easier to integrate with. It's not easy to make the external APIs as useful and powerful as internal ones: for one, you can trust your users more to do the right thing and not try to exploit you for profit, it's much less committment to offer certain functionalities, since it's easier to roll them back if only users are internal, etc. Google is slo…

> for one, you can trust your users more to do the right thing and not try to exploit you for profit, it's much less committment to offer certain functionalities, since it's easier to roll them back if only users are internal,

"Organizing into services taught teams not to trust each other in most of the same ways they're not supposed to trust external developers."

- from Steve Yegge's Platforms Rant[1]

1. https://gist.github.com/chitchcock/1281611

Re: The 2002 mandate for internal communication systems at Amazon

#144
post #10

Earlier quoted context omitted.

Some methods I've commonly seen in Enterprise Duct Tape: Screen scrape the other service and do data exchange via a Selenium script. Directly interact with the other service's database. CSV files and nightly batch jobs.

I raise you a service which gets it's configuration from a table on confluence page

As crazy as that may seem on the face of it, it’s actually kind of genius for merging the roles of those who need to configure / don’t get git, and those who need to develop against the configuration.

Re: The 2002 mandate for internal communication systems at Amazon

#145
post #10

Earlier quoted context omitted.

Some methods I've commonly seen in Enterprise Duct Tape: Screen scrape the other service and do data exchange via a Selenium script. Directly interact with the other service's database. CSV files and nightly batch jobs.

I raise you a service which gets it's configuration from a table on confluence page

and I thought the screen scraping / Selenium solution was wack! Wow!

Re: The 2002 mandate for internal communication systems at Amazon

#146
post #10

Earlier quoted context omitted.

Some methods I've commonly seen in Enterprise Duct Tape: Screen scrape the other service and do data exchange via a Selenium script. Directly interact with the other service's database. CSV files and nightly batch jobs.

I raise you a service which gets it's configuration from a table on confluence page

DAAC - Documentation As A Configuration

Re: The 2002 mandate for internal communication systems at Amazon

#147
post #100

Earlier quoted context omitted.

Elon Musk did this fairly recently at Tesla: "There are two schools of thought about how information should flow within companies. By far the most common way is chain of command, which means that you always flow communication through your manager. The problem with this approach is that, while it serves to enhance the power of the manager, it fails to serve the company. Instead of a problem getting solved quickly, whe…

Information doesn't have to flow through managers specifically and it certainly doesn't have to flow up the management chain and down again, but there ideally should be preferred funnels for the communication and breaking out of it should be an exception, or pre arranged, and not the norm. Otherwise you'll have, say, a particularly useful person on a team see his time filled with requests coming from a lot of differe…

Managers can facilitate the establishment of a direct connection. Good ones are routers or switches or whatever the analogy would be!

Re: The 2002 mandate for internal communication systems at Amazon

#148

Earlier quoted context omitted.

> Second, Kindle and SimpleDB (now Dynamo) Minor nitpick, these are two separate services. SDB is still independently accessible and probably will be for a while. That being said they definitely don't encourage any new use of SDB and push Dynamo instead. Kind of a shame because a modern NoSQL store with SQL support would be great for rapid prototyping before a concrete data schema is established.

I actually really liked Simple DB as a place for configuration.

whole-heartedly agree

Re: The 2002 mandate for internal communication systems at Amazon

#149
post #5

Earlier quoted context omitted.

How do services talk to each other without an API? Is it something like "put a non-well-documented object into a queue?"

IBM has an appliance for you: https://www.ibm.com/products/datapower-gateway It's a middleware appliance that allows any API to talk to any other API and handles just about any data format. You can script it with javascript or XSLT. It can handle ad-hoc things like ftp polling. It has the added benefit that you can add security for outside facing clients. Disclaimer: I helped develop this appliance (but I no longer w…

Pricing: Contact Us.

So basically it will be expensive, require an army of IBM consultants and become yet another integration point instead of actually solving anything.

Re: The 2002 mandate for internal communication systems at Amazon

#150
post #61
post #54

Yegge's article never says it was an email. What should the title be? Edit: I've taken a rather lame crack at it and am open to improvements.

The circumstances that Yegge described happened somewhat before my time, but I suppose you could call it an "internal goal" or "internal mandate". Amazon's not really big on "mandates" in general, but the term seems to fit Yegge's characterization of what happened. "Internal goal" would be another way to phrase it. E.g., "The single most important technical goal in the history of Amazon".

oh hey ur the Nova nigga
Post reply on HN