# Build a retail app with the Aerospike Java SDK and Voyager

::: note
Developers experienced with Java and Docker.
:::
::: undefined
This tutorial should take between 30 and 45 minutes.
:::

## Objectives

By the end of this tutorial, you will be able to:

-   Connect a Java application to Aerospike Database using the Aerospike Java SDK.
-   Implement object-mapped insert, point-read, and secondary-index query methods.
-   Build flexible multi-condition queries with the Aerospike Expression Language (AEL).
-   Implement a check-and-set update for a nested map document representing a shopping cart.
-   Use Aerospike Voyager to inspect, filter, and edit records in a live cluster.

This tutorial walks you through writing the database layer of a simple retail application using the Aerospike Java SDK and inspecting the resulting data with Aerospike Voyager. You start with a Spring Boot application whose data-access methods are stubbed out, then implement each method using the SDK’s fluent API. As you go, you use Voyager to verify your work, build filter expressions visually, and edit data directly in the cluster.

## The Aerospike Java SDK

The Aerospike Java SDK provides an idiomatic Java experience for building applications on Aerospike Database. You describe each operation using a _fluent_ chain of method calls and end with `execute()`.

The SDK has four pieces you use throughout this tutorial:

-   A `ClusterDefinition`, which describes how to find and authenticate against your cluster.
-   A `Cluster`, returned from `ClusterDefinition.connect()`, that owns the network resources.
-   A `Behavior`, which centralizes timeouts, retries, and consistency settings in one place. You use `Behavior.DEFAULT` in this tutorial.
-   A `Session`, which you use to run inserts, queries, and updates against the cluster.

The SDK includes _object mapping_ through the `RecordMapper` interface, so you can read and write your business objects (`Product`, `Cart`) directly without writing per-bin marshaling code. Queries use the _Aerospike Expression Language_ (AEL) to filter records, and the SDK chooses the best matching secondary index for you automatically.

## Aerospike Voyager

Aerospike Voyager is a desktop tool, available for macOS, Windows, and Linux, that lets you connect to one or more Aerospike clusters, browse data, build filter expressions visually, and edit records in place.

In this tutorial, you use Voyager to:

-   Connect to the local Aerospike cluster started by Docker Compose.
-   Confirm that your `storeProduct` implementation writes all 200 sample records.
-   Build an AEL filter visually by selecting a bin and value, then copy the generated expression directly into your Java code.
-   Inspect the nested map structure of a shopping-cart record and edit it as JSON.

::: undefined
-   I’m ready to get started!
:::

[Next  
Prerequisites](https://aerospike.com/docs/database/get-started-with-aerospike-java-sdk-and-voyager/step/1/part/0/prerequisites)