Overview

ScaleOut StateServer® provides a software-based, distributed, in-memory data grid, often referred to as distributed cache, for mission-critical workload data. Intended for use within a data center, the software is installed as a Windows service or Linux daemon on all servers within your Web or application server farm.

The Java ScaleOut client API connects a user application to a ScaleOut in-memory data grid for high performance, scalable access to objects. The client is available for Java Runtime Environment (JRE) 8+ and the JAR can be downloaded from ScaleOut’s public maven repository.

Java appliations leveraging the ScaleOut client API can create, read, update, and delete POJOs (Plain Old Java Objects) from the distributed cache. Stored objects can be uniformly accessed by any app.

The client API provides the ability to:
  • Connect to multiple ScaleOut in-memory data grids

  • Perform asynchronous caching operations

  • Lock objects for guaranteed sequential access

  • Query entire caches using filters

  • Register for expiration and backing store events

Downloading the JARs

The following sections detail how to configure a Gradle or Maven project to reference the ScaleOut Product Suite APIs. Alternatively, you can navigate to the repository and download the JAR manually.

Gradle

For Gradle, you can add the ScaleOut API Repository to your build.gradle by adding the following under repositories:

repositories {
    mavenCentral()
    maven {
        url "https://repo.scaleoutsoftware.com/repository/external"
    }
}

…and then you can add the following dependency:

APIs for ScaleOut StateServer:

// Use the following for the Java ScaleOut Client API
implementation group: 'com.scaleoutsoftware.client', name: 'api', version: '1.0.1'

Maven

For Maven, you can add the ScaleOut API Repository to your pom.xml by adding the following repository reference:

<repository>
    <id>ScaleOut API Repository</id>
    <url>https://repo.scaleoutsoftware.com/repository/external</url>
</repository>

…and then you can add the following dependency:

APIs for ScaleOut StateServer:

<dependencies>
    <!-- Use the following for the Java ScaleOut Client API -->
    <dependency>
      <groupId>com.scaleoutsoftware.client</groupId>
      <artifactId>api</artifactId>
      <version>1.0.1</version>
    </dependency>
</dependencies>

Comparison to Java Named Cache

The Java ScaleOut Client API has notable performance enhancements and additional features when compared to the Java NamedCache. The ScaleOut client API for Java includes the following features not available in the Java NamedCache:

  • Built for JRE 8+

  • Support for connections to multiple ScaleOut stores in a single application

  • Per connection configuration

  • Asynchronous operations

  • Enhanced dependency support

Alternatively, the Java NamedCache currently supports the following features not available in the Java ScaleOut Client API. These features are on the development backlog and will be added in a future release.

  • Single Method Invocation (SMI)

  • Parallel Method Invocation (PMI)

  • Post Event

  • Invocation Grid support