1,316 karma · joined November 2, 2009
Ion originated 10+ years ago from the Amazon catalog team - the team that kept data about the hundreds of millions of items available on Amazon. Nearly every team in the company called the catalog to get information about items all the time - scanning the entire catalog, parts of the catalog, millions of individual item lookups every second, etc.
They did the math and some very large percentage of network traffic in Amazon Retails data centers was catalog data. If that data, currently in XML or JSON format, was sent in a more compact format it would save some ridiculous millions of dollars every year. So Ion was born and eventually open sourced.
Works pretty well.
It has sane defaults and contextual tips that help when you're getting started (and can turn off later).
Some of the benefits over JSON:
* Real date type
* Real binary type - no need to base64 encode
* Real decimal type - invaluable when working with currency
* Annotations - You can tag an Ion field in a map with an annotation that says, e.g. its compression ("csv", "snappy") or its serialized type ('com.example.Foo').
* Text and binary format
* Symbol tables - this is like automated jsonpack.
* It's self-describing - meaning, unlike Avro, you don't need the schema ahead of time to read or write the data.
This is especially relevant when you need to do these things because of unexpected load increases or the loss of hosts in your cluster.
[1] - https://www.facebook.com/notes/facebook-engineering/the-unde...
edit: Added link to facebook post on hbase vs cassandra
I can only assume Tectonic and related tech are aimed at those developers who run hybrid or private clouds for the rest of their company.
That's not to say having a standard for vendoring isn't a good thing.
The OP says as much in the comments: "For us, one of the biggest latency wins comes from the fact that go can truly execute sql statements in parallel (whereas python's GIL serialized these parallelizable operations). In general, single-threaded go is at least 5x faster than pure python (without c-module)."
This is an excellent point that is missed in most monitoring setups I've seen. A classic example is some request that kills your service process. You get paged for that so you wrap the service in a supervisor like daemon. The immediate issue is fixed and, typically, any future causes of the service process dying are hidden unless someone happens to be looking at the logs one day.
I would love to see smart ways to surface "this will be a problem soon" on alerting systems.
Everything in the warehouse is not prime. If fact, an item can flip from prime to not prime in near real time if the most accessible inventory is used up and all that is left is the stuff in the 'reserve' areas of the warehouse. This is the area where the giant boxes of inventory stored. Grabbing inventory from there involves pulling it down, opening, pulling apart eaches, and then stowing in fast access areas.
Therefore Add-On items are just an improvement to Prime.