AtomServer is a generic data store implemented as a RESTful web service. It is designed as a GData-style Atom Store. It is based on the following concepts and protocols;

AtomServer stands on the shoulders of giants. It is built on top of several open source projects - most notably, Apache Abdera (a Java-based Atom Publishing framework) and Spring.

AtomServer is an Atom Store. Thus, it requires a relational database to run. AtomServer currently supports; PostgresSQL, SQLServer, and HSQLDB. Using HSQLDB, AtomServer requires zero configuration and can run out-of-the-box. While this configuration is suitable for many applications, those that see significant load will likely require a database with better transactional semantics, such as PostgreSQL.

AtomServer is easy to use. It deploys as a simple WAR file into any Servlet container. Or alternately, can be used out-of-the-box as a standalone server, running within an embedded Jetty Server. Most applications should be able to use AtomServer by simply providing a very small amount of configuration - a few Spring Beans that configure the application's Atom Workspaces and the Content storage. AtomServer has been built to allow for easy extention. It contains an extendable ClassLoader which can be configured to look for Resources hierarchially in specified directories.

AtomServer is battle-hardened. It is used as the Production data store for a large web site, where it receives over 1 million hits a day, with transaction rates often exceeding 100/sec. (and much more in load testing) - where not only must this data be delivered in a timely fashion, it must also, first and foremost, be transactionally correct.

AtomServer in the news

Chris Berry and Bryon Jacob have written an introductory article about AtomServer for InfoQ. This is a great place to start if you want to become acquainted with AtomServer.

There is also a follow-on article on InfoQ, which covers the advanced features of AtomServer; Auto-tagging, Aggregate Feeds, and Batching.