Like many people, I recently have been re-discovering the XMPP messaging protocol and ended up running my own server. In fact, this blog is essentially a result of that effort, though it functions independently from the XMPP service.
S3 is a product from Amazon, and as such, it includes “features” that are outside the scope of Swift itself. For example, Swift doesn’t have anything to do with billing, whereas S3 buckets can be tied to Amazon’s billing system. Similarly, log delivery is a service outside of Swift. It’s entirely possible for a Swift deployment to provide that functionality, but it is not part of Swift itself. Likewise, a Swift deployment can provide similar geographic availability as S3, but this is tied to the deployer’s willingness to build the infrastructure and support systems to do so.
One of the most common questions I’m asked to cover when I discuss software architecture topics is the difference between the various application messaging protocols that exist today—issues like how and why the protocols came about, and which one should be used in a particular application.