==  Introduction
This guide will walk you through downloading, installing and running {brandname} for the first time.
It will then introduce to some of the key features of {brandname}.

=== Runtimes
{brandname} can be used in a variety of runtimes:

*  _Java SE_, started by your application 
*  an _application server_ which provides {brandname} as a service (such as JBoss AS)
*  _bundled as a library_ in your application, deployed to an application server, and started on by your application (for example, you could use {brandname} with Tomcat or GlassFish)
*  inside an OSGi runtime environment (such as Apache Karaf)

=== Modes
{brandname} offers four modes of operation, which determine how and where the data is stored:

*  _Local_ , where entries are stored on the local node only, regardless of whether a cluster has formed. In this mode {brandname} is typically operating as a local cache
*  _Invalidation_ , where all entries are stored into a cache store (such as a database) only, and invalidated from all nodes. When a node needs the entry it will load it from a cache store. In this mode {brandname} is operating as a distributed cache, backed by a canonical data store such as a database
*  _Replication_ , where all entries are replicated to all nodes. In this mode {brandname} is typically operating as a data grid or a temporary data store, but doesn't offer an increased heap space
*  _Distribution_ , where entries are distributed to a subset of the nodes only. In this mode {brandname} is typically  operating as a data grid providing an increased heap space
*  _Scattered_, which is similar to Distribution mode but is more suitable for write-intensive applications.

Invalidation, Replication and Distribution can all use synchronous or asynchronous communication, Scattered mode is only synchronous.

=== Interacting with {brandname}
{brandname} offers two access patterns, both of which are available in any runtime:

*  _Embedded_ into your application code 
*  As a _Remote_ server accessed by a client (REST, memcached or Hot Rod wire protocols are supported) 

This guide will introduce to each of the runtime options, access patterns and modes of operations by walking you through simple applications for each.

