(NOTE: A semi-technical discussion of how I would have programmed something lies ahead)
Recently, I needed a feature on Amazon that they did not have. I have recently read a book that is the first in a three part series. I liked the book and I want to read the other two. I wanted to set up a bot on Amazon that will search for the book every few days or so and send me an email when a book by that author comes out. I was unable to find the feature on the Amazon website. I checked back a few days later and I found it in beta for music only. I checked back today and I could sign up for "Amazon Alerts" on books.
Amazon has the functionality I need, but I think it is implemented poorly. Given the technology that we have today to produce a web service that consumes queries and replies, I don't see the advantage of having the alerts centrally managed.
Ideally, Amazon should have made a personal Amazon tool that you can download and install on your local machine. This personal Amazon would query Amazon based on a schedule you set up. The timing options would limit polling of Amazon's web servers. The personal bot would only work if your computer was on, the Internet connected, and the Internet connection live. Those three conditions, alone would ease the hardware requirements (on Amazon's end) needed for this tool.
Pros of centrally managed alerts system
1) It will be easy for Amazon to know exactly what things are being searched for.
2) It will be easy for Amazon to know the number of alerts sent out daily.
3) It will be easy for Amazon can track the alerts and correlate them with sales of an item (i.e. the accuracy of alerts.)
Note: Some may list the fact that you will be driven to the Amazon website by the email as a pro. The decentralized alert system would do the same thing, so that cannot be counted as a pro.
Cons of a centrally managed alert system
1) Amazon must scale the hardware to produce those alerts.
The hardware cost of handling thousands of alerts is going to be more expensive versus a decentralized alert system.
Explanation: From what I can tell there are three ways of producing an alert in a centralized system.
One, whenever an item that supports alerts is added, a process must be ran which compares the item against all the alerts in that category.
Two, batch jobs are set up to run an alert at regular time intervals.
Each of these methods has their own drawbacks. The first one is CPU intensive. The second one is less CPU intensive, but if the batch job is not ran on a regular basis, the alerts are not going to be timely. I think both methods require more hardware than necessary to do the job.
Three, have a process that alerts the user to the item that they were looking for when they lodging to Amazon. I think this method is not an alert, but an automated search that can be performed when the user logs in. It would be much less resource intensive than the first two, but it does not drive traffic to the Amazon website, so it is fairly useless as far as Amazon is concerned and I would concur with them on that idea.
2) Out of date alerts.
People go to Amazon to buy books, not manage the details of getting the information to buy a book. All that data on alerts does not mean anything if the alerts themselves are old, pointing to wrong email addresses, or being filtered as junk mail.
Pros of a decentralized alert system
1) Lower hardware cost, which translates in to fewer employees, and less software costs.
2) Empower the user. This could create customer loyalty and lock them into only using amazon.
Cons of a decentralized managed alert system
1) Amazon loses some metrics associated with the alerts and some of the ease of compiling that information, though with a properly designed process Amazon would have all the data they needed.
I wonder if Amazon has always made decisions as bad as the alert system.