
Why should I pay for this AWS design decision? - cstejerean
http://www.protocolostomy.com/2008/06/23/why-should-i-pay-for-this-aws-design-decision/
======
marcus
Simple answer you don't have to, just don't use SQS. If Amazon did the check
internally and queried all servers for you the cost of each request would have
been much larger and they would have scaling problems. This approach is the
most easily scalable.

And even polling every second costs 8.64 cents per day or 2.59 USD a month,
stop bitching and get to work.

~~~
yarek
You always have the option of implementing SQS yourself. It might cost you a
fair bit more of time, money and energy. Much, much more than the few extra
cents you'd pay.

------
seregine
You should pay to check whether the message is available because your requests
cost Amazon money. That way, if you don't care to poll frequently, you won't
be forced to pay some average price that's driven up by other users who do
need to poll often. In fact, this is more fair.

Disclaimer: I used to work at AWS, though it was 2+ years ago and I didn't
work on SQS.

~~~
jonallanharper
It _is_ fair.

If it wasn't fair, it doesn't matter ... it's their product, and it doesn't
infringe on anyone else's life/liberty/property.

They are also free to trade their services under whatever conditions they
wish. Currently that is ... may not be long before a bunch of idiot
collectivists (like this blogger) seek to curb others freedom b/c of a lack of
understanding of basic economics and an irrational desire for everyone to be
altruistic.

Let me guess dear blogger ... I bet Amazon's being "greedy" as well. Oh the
humanity!

~~~
kirubakaran
Amazon Shrugged?

------
pchristensen
Because you're a free customer who can choose whether or not to use the
service?

------
gregstoll
This does seem a little unfair, but I'm not sure what the alternative is,
since it does cost resources to check if the queue is empty.

~~~
Tamerlin
An event-based model would have done the trick. Register a listener to a
message queue, and when a message arrives, the queue handler sends it an
event. It would make things a little more complicated, but it also imposes
less load on the servers on both sides by making polling unnecessary.

~~~
bayareaguy
I agree. SQS's design has its uses and S3's ordered key-space makes it easy to
create queue structures without this behavior if that's what you think you
want.

The thing I too would like to see from AWS would be some kind of callback api
where an HTTP request would be sent to an EC2 instance when something useful
happens in S3. That would allow you to dispense with polling entirely.

