Iron.io is pleased to announce a soft-launch/beta release of IronCache, a hosted key/value data cache. It’s an elastic cloud-based solution built for storing short-term processing results and passing items between asynchronous processes. IronCache is useful for many situations where a database alone isn’t an optimal solution. The service is accessible via a simple HTTP interface and is memcached compatible. It uses OAuth to provide a simple and secure authentication mechanism.
Joins IronWorker and IronMQ
IronCache is designed to complement Iron.io’s existing services – IronWorker and IronMQ. For example, the service provides developers with a simple and secure way to let workers communicate with each other. The genesis for the service was the result of direct requests and a number of use cases from customers. Heavy users of IronWorker were looking for simple ways to maintain state and coordinate asynchronous activities. Essentially, they needed a simple way to hold counters, store transient results, record the state of sequences, and share other types of data and activities between sets of processes.
Enter IronCache. Instead of using their existing database – for reasons we’ll outline in another blog post – or standing up a separate key/value data store in their cloud stack, users can make use of Iron.io’s hosted cache and eliminate the need to manage infrastructure, deal with redundancy, or address scaling issues. IronCache is designed for use with Iron.io services. It uses the same authentication mechanism, is designed to have low-latency between services, and provides similar monitoring and notification capabilities via the Iron.io dashboard.
Caches, Data Items, and Atomic Operations
Developers can create multiple caches, a useful feature to compartmentalize work. Each cache begins with a call to store data. When you tell it to store an item, IronCache behaves intelligently, meaning that if the cache to store data in doesn’t exist, IronCache will create it. If the key doesn’t exist, IronCache will create the item in the cache; if the key exists, IronCache will overwrite the value. The overwriting and creation of items can be configured on a call-by-call basis.
IronCache supports incrementing as an atomic operation, a critical need for situations where many clients may be modifying items at the same time. For example, developers may wish to count the number of times a piece of code runs. If two clients attempt to first get the value stored in cache, modify it locally, then write it, they may overwrite each other’s modifications. An atomic operation using a data cache ensures this doesn’t happen.
Data items in the cache are short-lived – meaning they expire after a specific duration. The default is 7 days and the maximum is 30 days, although each item can be configured with its own expiration or Time-To-Live value.
Getting Started (with the Beta Release)
For more information on this soft-launch of IronCache, take a look at the product page as well as the section in the Dev Center. Getting started is easy as well, especially if you have an existing Iron.io account. Just use the same auth tokens, create some caches and start storing and retrieving items. Add in some asynchronous processing or communication with an external system and you’re on your way to using the patterns that will be IT mainstays for a long time to come.