blob: c6bc63601eb24545cbf5cebac8a9807b76b772d6 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Stores (kafka 3.6.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.kafka.streams.state, class: Stores">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.kafka.streams.state</a></div>
<h1 title="Class Stores" class="title">Class Stores</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.kafka.streams.state.Stores</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">Stores</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">Factory for creating state stores in Kafka Streams.
<p>
When using the high-level DSL, i.e., <a href="../StreamsBuilder.html" title="class in org.apache.kafka.streams"><code>StreamsBuilder</code></a>, users create
<a href="StoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>StoreSupplier</code></a>s that can be further customized via
<a href="../kstream/Materialized.html" title="class in org.apache.kafka.streams.kstream"><code>Materialized</code></a>.
For example, a topic read as <a href="../kstream/KTable.html" title="interface in org.apache.kafka.streams.kstream"><code>KTable</code></a> can be materialized into an
in-memory store with custom key/value serdes and caching disabled:
<pre><code>
StreamsBuilder builder = new StreamsBuilder();
KeyValueBytesStoreSupplier storeSupplier = Stores.inMemoryKeyValueStore("queryable-store-name");
KTable&lt;Long,String&gt; table = builder.table(
"topicName",
Materialized.&lt;Long,String&gt;as(storeSupplier)
.withKeySerde(Serdes.Long())
.withValueSerde(Serdes.String())
.withCachingDisabled());
</code></pre>
When using the Processor API, i.e., <a href="../Topology.html" title="class in org.apache.kafka.streams"><code>Topology</code></a>, users create
<a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a>s that can be attached to <a href="../processor/api/Processor.html" title="interface in org.apache.kafka.streams.processor.api"><code>Processor</code></a>s.
For example, you can create a <a href="../kstream/Windowed.html" title="class in org.apache.kafka.streams.kstream"><code>windowed</code></a> RocksDB store with custom
changelog topic configuration like:
<pre><code>
Topology topology = new Topology();
topology.addProcessor("processorName", ...);
Map&lt;String,String&gt; topicConfig = new HashMap&lt;&gt;();
StoreBuilder&lt;WindowStore&lt;Integer, Long&gt;&gt; storeBuilder = Stores
.windowStoreBuilder(
Stores.persistentWindowStore("queryable-store-name", ...),
Serdes.Integer(),
Serdes.Long())
.withLoggingEnabled(topicConfig);
topology.addStateStore(storeBuilder, "processorName");
</code></pre></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Stores</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#inMemoryKeyValueStore(java.lang.String)" class="member-name-link">inMemoryKeyValueStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create an in-memory <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">SessionBytesStoreSupplier</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#inMemorySessionStore(java.lang.String,java.time.Duration)" class="member-name-link">inMemorySessionStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create an in-memory <a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>SessionBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#inMemoryWindowStore(java.lang.String,java.time.Duration,java.time.Duration,boolean)" class="member-name-link">inMemoryWindowStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;windowSize,
boolean&nbsp;retainDuplicates)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create an in-memory <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;K,<wbr>
V&gt;&nbsp;<a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="KeyValueStore.html" title="interface in org.apache.kafka.streams.state">KeyValueStore</a>&lt;K,<wbr>V&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#keyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)" class="member-name-link">keyValueStoreBuilder</a><wbr>(<a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="KeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueStore</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#lruMap(java.lang.String,int)" class="member-name-link">lruMap</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
int&nbsp;maxCacheSize)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create a LRU Map <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#persistentKeyValueStore(java.lang.String)" class="member-name-link">persistentKeyValueStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create a persistent <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">SessionBytesStoreSupplier</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#persistentSessionStore(java.lang.String,java.time.Duration)" class="member-name-link">persistentSessionStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create a persistent <a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>SessionBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#persistentTimestampedKeyValueStore(java.lang.String)" class="member-name-link">persistentTimestampedKeyValueStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create a persistent <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#persistentTimestampedWindowStore(java.lang.String,java.time.Duration,java.time.Duration,boolean)" class="member-name-link">persistentTimestampedWindowStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;windowSize,
boolean&nbsp;retainDuplicates)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create a persistent <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">VersionedBytesStoreSupplier</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#persistentVersionedKeyValueStore(java.lang.String,java.time.Duration)" class="member-name-link">persistentVersionedKeyValueStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;historyRetention)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create a persistent versioned key-value store <a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>VersionedBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">VersionedBytesStoreSupplier</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#persistentVersionedKeyValueStore(java.lang.String,java.time.Duration,java.time.Duration)" class="member-name-link">persistentVersionedKeyValueStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;historyRetention,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;segmentInterval)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create a persistent versioned key-value store <a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>VersionedBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#persistentWindowStore(java.lang.String,java.time.Duration,java.time.Duration,boolean)" class="member-name-link">persistentWindowStore</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;windowSize,
boolean&nbsp;retainDuplicates)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Create a persistent <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;K,<wbr>
V&gt;&nbsp;<a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="SessionStore.html" title="interface in org.apache.kafka.streams.state">SessionStore</a>&lt;K,<wbr>V&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#sessionStoreBuilder(org.apache.kafka.streams.state.SessionBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)" class="member-name-link">sessionStoreBuilder</a><wbr>(<a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">SessionBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="SessionStore.html" title="interface in org.apache.kafka.streams.state"><code>SessionStore</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;K,<wbr>
V&gt;&nbsp;<a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="TimestampedKeyValueStore.html" title="interface in org.apache.kafka.streams.state">TimestampedKeyValueStore</a>&lt;K,<wbr>V&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#timestampedKeyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)" class="member-name-link">timestampedKeyValueStoreBuilder</a><wbr>(<a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="TimestampedKeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>TimestampedKeyValueStore</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;K,<wbr>
V&gt;&nbsp;<a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="TimestampedWindowStore.html" title="interface in org.apache.kafka.streams.state">TimestampedWindowStore</a>&lt;K,<wbr>V&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#timestampedWindowStoreBuilder(org.apache.kafka.streams.state.WindowBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)" class="member-name-link">timestampedWindowStoreBuilder</a><wbr>(<a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="TimestampedWindowStore.html" title="interface in org.apache.kafka.streams.state"><code>TimestampedWindowStore</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;K,<wbr>
V&gt;&nbsp;<a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="VersionedKeyValueStore.html" title="interface in org.apache.kafka.streams.state">VersionedKeyValueStore</a>&lt;K,<wbr>V&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#versionedKeyValueStoreBuilder(org.apache.kafka.streams.state.VersionedBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)" class="member-name-link">versionedKeyValueStoreBuilder</a><wbr>(<a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">VersionedBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="VersionedKeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>VersionedKeyValueStore</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;K,<wbr>
V&gt;&nbsp;<a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="WindowStore.html" title="interface in org.apache.kafka.streams.state">WindowStore</a>&lt;K,<wbr>V&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#windowStoreBuilder(org.apache.kafka.streams.state.WindowBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)" class="member-name-link">windowStoreBuilder</a><wbr>(<a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="WindowStore.html" title="interface in org.apache.kafka.streams.state"><code>WindowStore</code></a>.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>Stores</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Stores</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="persistentKeyValueStore(java.lang.String)">
<h3>persistentKeyValueStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a></span>&nbsp;<span class="element-name">persistentKeyValueStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Create a persistent <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a>.
<p>
This store supplier can be passed into a <a href="#keyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>keyValueStoreBuilder(KeyValueBytesStoreSupplier, Serde, Serde)</code></a>.
If you want to create a <a href="TimestampedKeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>TimestampedKeyValueStore</code></a> or <a href="VersionedKeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>VersionedKeyValueStore</code></a>
you should use <a href="#persistentTimestampedKeyValueStore(java.lang.String)"><code>persistentTimestampedKeyValueStore(String)</code></a> or
<a href="#persistentVersionedKeyValueStore(java.lang.String,java.time.Duration)"><code>persistentVersionedKeyValueStore(String, Duration)</code></a>, respectively,
to create a store supplier instead.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dt>Returns:</dt>
<dd>an instance of a <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a> that can be used
to build a persistent key-value store</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="persistentTimestampedKeyValueStore(java.lang.String)">
<h3>persistentTimestampedKeyValueStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a></span>&nbsp;<span class="element-name">persistentTimestampedKeyValueStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Create a persistent <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a>.
<p>
This store supplier can be passed into a
<a href="#timestampedKeyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>timestampedKeyValueStoreBuilder(KeyValueBytesStoreSupplier, Serde, Serde)</code></a>.
If you want to create a <a href="KeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueStore</code></a> or a <a href="VersionedKeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>VersionedKeyValueStore</code></a>
you should use <a href="#persistentKeyValueStore(java.lang.String)"><code>persistentKeyValueStore(String)</code></a> or
<a href="#persistentVersionedKeyValueStore(java.lang.String,java.time.Duration)"><code>persistentVersionedKeyValueStore(String, Duration)</code></a>, respectively,
to create a store supplier instead.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dt>Returns:</dt>
<dd>an instance of a <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a> that can be used
to build a persistent key-(timestamp/value) store</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="persistentVersionedKeyValueStore(java.lang.String,java.time.Duration)">
<h3>persistentVersionedKeyValueStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">VersionedBytesStoreSupplier</a></span>&nbsp;<span class="element-name">persistentVersionedKeyValueStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;historyRetention)</span></div>
<div class="block">Create a persistent versioned key-value store <a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>VersionedBytesStoreSupplier</code></a>.
<p>
This store supplier can be passed into a
<a href="#versionedKeyValueStoreBuilder(org.apache.kafka.streams.state.VersionedBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>versionedKeyValueStoreBuilder(VersionedBytesStoreSupplier, Serde, Serde)</code></a>.
<p>
Note that it is not safe to change the value of <code>historyRetention</code> between
application restarts without clearing local state from application instances,
as this may cause incorrect values to be read from the state store if it impacts
the underlying storage format.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dd><code>historyRetention</code> - length of time that old record versions are available for query
(cannot be negative). If a timestamp bound provided to
<a href="VersionedKeyValueStore.html#get(K,long)"><code>VersionedKeyValueStore.get(Object, long)</code></a> is older than this
specified history retention, then the get operation will not return data.
This parameter also determines the "grace period" after which
out-of-order writes will no longer be accepted.</dd>
<dt>Returns:</dt>
<dd>an instance of <a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>VersionedBytesStoreSupplier</code></a></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>historyRetention</code> can't be represented as <code>long milliseconds</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="persistentVersionedKeyValueStore(java.lang.String,java.time.Duration,java.time.Duration)">
<h3>persistentVersionedKeyValueStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">VersionedBytesStoreSupplier</a></span>&nbsp;<span class="element-name">persistentVersionedKeyValueStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;historyRetention,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;segmentInterval)</span></div>
<div class="block">Create a persistent versioned key-value store <a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>VersionedBytesStoreSupplier</code></a>.
<p>
This store supplier can be passed into a
<a href="#versionedKeyValueStoreBuilder(org.apache.kafka.streams.state.VersionedBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>versionedKeyValueStoreBuilder(VersionedBytesStoreSupplier, Serde, Serde)</code></a>.
<p>
Note that it is not safe to change the value of <code>segmentInterval</code> between
application restarts without clearing local state from application instances,
as this may cause incorrect values to be read from the state store otherwise.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dd><code>historyRetention</code> - length of time that old record versions are available for query
(cannot be negative). If a timestamp bound provided to
<a href="VersionedKeyValueStore.html#get(K,long)"><code>VersionedKeyValueStore.get(Object, long)</code></a> is older than this
specified history retention, then the get operation will not return data.
This parameter also determines the "grace period" after which
out-of-order writes will no longer be accepted.</dd>
<dd><code>segmentInterval</code> - size of segments for storing old record versions (must be positive). Old record versions
for the same key in a single segment are stored (updated and accessed) together.
The only impact of this parameter is performance. If segments are large
and a workload results in many record versions for the same key being collected
in a single segment, performance may degrade as a result. On the other hand,
historical reads (which access older segments) and out-of-order writes may
slow down if there are too many segments.</dd>
<dt>Returns:</dt>
<dd>an instance of <a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>VersionedBytesStoreSupplier</code></a></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>historyRetention</code> or <code>segmentInterval</code> can't be represented as <code>long milliseconds</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="inMemoryKeyValueStore(java.lang.String)">
<h3>inMemoryKeyValueStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a></span>&nbsp;<span class="element-name">inMemoryKeyValueStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Create an in-memory <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a>.
<p>
This store supplier can be passed into a <a href="#keyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>keyValueStoreBuilder(KeyValueBytesStoreSupplier, Serde, Serde)</code></a>
or <a href="#timestampedKeyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>timestampedKeyValueStoreBuilder(KeyValueBytesStoreSupplier, Serde, Serde)</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dt>Returns:</dt>
<dd>an instance of a <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a> than can be used to
build an in-memory store</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="lruMap(java.lang.String,int)">
<h3>lruMap</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a></span>&nbsp;<span class="element-name">lruMap</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
int&nbsp;maxCacheSize)</span></div>
<div class="block">Create a LRU Map <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a>.
<p>
This store supplier can be passed into a <a href="#keyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>keyValueStoreBuilder(KeyValueBytesStoreSupplier, Serde, Serde)</code></a>
or <a href="#timestampedKeyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>timestampedKeyValueStoreBuilder(KeyValueBytesStoreSupplier, Serde, Serde)</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dd><code>maxCacheSize</code> - maximum number of items in the LRU (cannot be negative)</dd>
<dt>Returns:</dt>
<dd>an instance of a <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a> that can be used to build
an LRU Map based store</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>maxCacheSize</code> is negative</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="persistentWindowStore(java.lang.String,java.time.Duration,java.time.Duration,boolean)">
<h3>persistentWindowStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a></span>&nbsp;<span class="element-name">persistentWindowStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;windowSize,
boolean&nbsp;retainDuplicates)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Create a persistent <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a>.
<p>
This store supplier can be passed into a <a href="#windowStoreBuilder(org.apache.kafka.streams.state.WindowBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>windowStoreBuilder(WindowBytesStoreSupplier, Serde, Serde)</code></a>.
If you want to create a <a href="TimestampedWindowStore.html" title="interface in org.apache.kafka.streams.state"><code>TimestampedWindowStore</code></a> you should use
<a href="#persistentTimestampedWindowStore(java.lang.String,java.time.Duration,java.time.Duration,boolean)"><code>persistentTimestampedWindowStore(String, Duration, Duration, boolean)</code></a> to create a store supplier instead.
<p>
Note that it is not safe to change the value of <code>retentionPeriod</code> between
application restarts without clearing local state from application instances,
as this may cause incorrect values to be read from the state store if it impacts
the underlying storage format.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dd><code>retentionPeriod</code> - length of time to retain data in the store (cannot be negative)
(note that the retention period must be at least long enough to contain the
windowed data's entire life cycle, from window-start through window-end,
and for the entire grace period)</dd>
<dd><code>windowSize</code> - size of the windows (cannot be negative)</dd>
<dd><code>retainDuplicates</code> - whether or not to retain duplicates. Turning this on will automatically disable
caching and means that null values will be ignored.</dd>
<dt>Returns:</dt>
<dd>an instance of <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>retentionPeriod</code> or <code>windowSize</code> can't be represented as <code>long milliseconds</code></dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>retentionPeriod</code> is smaller than <code>windowSize</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="persistentTimestampedWindowStore(java.lang.String,java.time.Duration,java.time.Duration,boolean)">
<h3>persistentTimestampedWindowStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a></span>&nbsp;<span class="element-name">persistentTimestampedWindowStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;windowSize,
boolean&nbsp;retainDuplicates)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Create a persistent <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a>.
<p>
This store supplier can be passed into a
<a href="#timestampedWindowStoreBuilder(org.apache.kafka.streams.state.WindowBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>timestampedWindowStoreBuilder(WindowBytesStoreSupplier, Serde, Serde)</code></a>.
If you want to create a <a href="WindowStore.html" title="interface in org.apache.kafka.streams.state"><code>WindowStore</code></a> you should use
<a href="#persistentWindowStore(java.lang.String,java.time.Duration,java.time.Duration,boolean)"><code>persistentWindowStore(String, Duration, Duration, boolean)</code></a> to create a store supplier instead.
<p>
Note that it is not safe to change the value of <code>retentionPeriod</code> between
application restarts without clearing local state from application instances,
as this may cause incorrect values to be read from the state store if it impacts
the underlying storage format.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dd><code>retentionPeriod</code> - length of time to retain data in the store (cannot be negative)
(note that the retention period must be at least long enough to contain the
windowed data's entire life cycle, from window-start through window-end,
and for the entire grace period)</dd>
<dd><code>windowSize</code> - size of the windows (cannot be negative)</dd>
<dd><code>retainDuplicates</code> - whether or not to retain duplicates. Turning this on will automatically disable
caching and means that null values will be ignored.</dd>
<dt>Returns:</dt>
<dd>an instance of <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>retentionPeriod</code> or <code>windowSize</code> can't be represented as <code>long milliseconds</code></dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>retentionPeriod</code> is smaller than <code>windowSize</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="inMemoryWindowStore(java.lang.String,java.time.Duration,java.time.Duration,boolean)">
<h3>inMemoryWindowStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a></span>&nbsp;<span class="element-name">inMemoryWindowStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;windowSize,
boolean&nbsp;retainDuplicates)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Create an in-memory <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a>.
<p>
This store supplier can be passed into a <a href="#windowStoreBuilder(org.apache.kafka.streams.state.WindowBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>windowStoreBuilder(WindowBytesStoreSupplier, Serde, Serde)</code></a> or
<a href="#timestampedWindowStoreBuilder(org.apache.kafka.streams.state.WindowBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)"><code>timestampedWindowStoreBuilder(WindowBytesStoreSupplier, Serde, Serde)</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dd><code>retentionPeriod</code> - length of time to retain data in the store (cannot be negative)
Note that the retention period must be at least long enough to contain the
windowed data's entire life cycle, from window-start through window-end,
and for the entire grace period.</dd>
<dd><code>windowSize</code> - size of the windows (cannot be negative)</dd>
<dd><code>retainDuplicates</code> - whether or not to retain duplicates. Turning this on will automatically disable
caching and means that null values will be ignored.</dd>
<dt>Returns:</dt>
<dd>an instance of <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>retentionPeriod</code> or <code>windowSize</code> can't be represented as <code>long milliseconds</code></dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>retentionPeriod</code> is smaller than <code>windowSize</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="persistentSessionStore(java.lang.String,java.time.Duration)">
<h3>persistentSessionStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">SessionBytesStoreSupplier</a></span>&nbsp;<span class="element-name">persistentSessionStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod)</span></div>
<div class="block">Create a persistent <a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>SessionBytesStoreSupplier</code></a>.
<p>
Note that it is not safe to change the value of <code>retentionPeriod</code> between
application restarts without clearing local state from application instances,
as this may cause incorrect values to be read from the state store if it impacts
the underlying storage format.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dd><code>retentionPeriod</code> - length of time to retain data in the store (cannot be negative)
(note that the retention period must be at least as long enough to
contain the inactivity gap of the session and the entire grace period.)</dd>
<dt>Returns:</dt>
<dd>an instance of a <a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>SessionBytesStoreSupplier</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="inMemorySessionStore(java.lang.String,java.time.Duration)">
<h3>inMemorySessionStore</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">SessionBytesStoreSupplier</a></span>&nbsp;<span class="element-name">inMemorySessionStore</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html" title="class or interface in java.time" class="external-link">Duration</a>&nbsp;retentionPeriod)</span></div>
<div class="block">Create an in-memory <a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>SessionBytesStoreSupplier</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - name of the store (cannot be <code>null</code>)</dd>
<dd><code>retentionPeriod</code> - length of time to retain data in the store (cannot be negative)
(note that the retention period must be at least as long enough to
contain the inactivity gap of the session and the entire grace period.)</dd>
<dt>Returns:</dt>
<dd>an instance of a <a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>SessionBytesStoreSupplier</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="keyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)">
<h3>keyValueStoreBuilder</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;K,<wbr>
V&gt;</span>
<span class="return-type"><a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="KeyValueStore.html" title="interface in org.apache.kafka.streams.state">KeyValueStore</a>&lt;K,<wbr>V&gt;&gt;</span>&nbsp;<span class="element-name">keyValueStoreBuilder</span><wbr><span class="parameters">(<a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</span></div>
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="KeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueStore</code></a>.
<p>
The provided supplier should <strong>not</strong> be a supplier for
<a href="TimestampedKeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>TimestampedKeyValueStores</code></a>.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>K</code> - key type</dd>
<dd><code>V</code> - value type</dd>
<dt>Parameters:</dt>
<dd><code>supplier</code> - a <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a> (cannot be <code>null</code>)</dd>
<dd><code>keySerde</code> - the key serde to use</dd>
<dd><code>valueSerde</code> - the value serde to use; if the serialized bytes is <code>null</code> for put operations,
it is treated as delete</dd>
<dt>Returns:</dt>
<dd>an instance of a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can build a <a href="KeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueStore</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="timestampedKeyValueStoreBuilder(org.apache.kafka.streams.state.KeyValueBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)">
<h3>timestampedKeyValueStoreBuilder</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;K,<wbr>
V&gt;</span>
<span class="return-type"><a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="TimestampedKeyValueStore.html" title="interface in org.apache.kafka.streams.state">TimestampedKeyValueStore</a>&lt;K,<wbr>V&gt;&gt;</span>&nbsp;<span class="element-name">timestampedKeyValueStoreBuilder</span><wbr><span class="parameters">(<a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">KeyValueBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</span></div>
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="TimestampedKeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>TimestampedKeyValueStore</code></a>.
<p>
The provided supplier should <strong>not</strong> be a supplier for
<a href="KeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueStores</code></a>. For this case, passed in timestamps will be dropped and not stored in the
key-value-store. On read, no valid timestamp but a dummy timestamp will be returned.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>K</code> - key type</dd>
<dd><code>V</code> - value type</dd>
<dt>Parameters:</dt>
<dd><code>supplier</code> - a <a href="KeyValueBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueBytesStoreSupplier</code></a> (cannot be <code>null</code>)</dd>
<dd><code>keySerde</code> - the key serde to use</dd>
<dd><code>valueSerde</code> - the value serde to use; if the serialized bytes is <code>null</code> for put operations,
it is treated as delete</dd>
<dt>Returns:</dt>
<dd>an instance of a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can build a <a href="KeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>KeyValueStore</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="versionedKeyValueStoreBuilder(org.apache.kafka.streams.state.VersionedBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)">
<h3>versionedKeyValueStoreBuilder</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;K,<wbr>
V&gt;</span>
<span class="return-type"><a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="VersionedKeyValueStore.html" title="interface in org.apache.kafka.streams.state">VersionedKeyValueStore</a>&lt;K,<wbr>V&gt;&gt;</span>&nbsp;<span class="element-name">versionedKeyValueStoreBuilder</span><wbr><span class="parameters">(<a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">VersionedBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</span></div>
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="VersionedKeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>VersionedKeyValueStore</code></a>.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>K</code> - key type</dd>
<dd><code>V</code> - value type</dd>
<dt>Parameters:</dt>
<dd><code>supplier</code> - a <a href="VersionedBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>VersionedBytesStoreSupplier</code></a> (cannot be <code>null</code>)</dd>
<dd><code>keySerde</code> - the key serde to use</dd>
<dd><code>valueSerde</code> - the value serde to use; if the serialized bytes is <code>null</code> for put operations,
it is treated as a deletion</dd>
<dt>Returns:</dt>
<dd>an instance of a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can build a <a href="VersionedKeyValueStore.html" title="interface in org.apache.kafka.streams.state"><code>VersionedKeyValueStore</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="windowStoreBuilder(org.apache.kafka.streams.state.WindowBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)">
<h3>windowStoreBuilder</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;K,<wbr>
V&gt;</span>&nbsp;<span class="return-type"><a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="WindowStore.html" title="interface in org.apache.kafka.streams.state">WindowStore</a>&lt;K,<wbr>V&gt;&gt;</span>&nbsp;<span class="element-name">windowStoreBuilder</span><wbr><span class="parameters">(<a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</span></div>
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="WindowStore.html" title="interface in org.apache.kafka.streams.state"><code>WindowStore</code></a>.
<p>
The provided supplier should <strong>not</strong> be a supplier for
<a href="TimestampedWindowStore.html" title="interface in org.apache.kafka.streams.state"><code>TimestampedWindowStores</code></a>.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>K</code> - key type</dd>
<dd><code>V</code> - value type</dd>
<dt>Parameters:</dt>
<dd><code>supplier</code> - a <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a> (cannot be <code>null</code>)</dd>
<dd><code>keySerde</code> - the key serde to use</dd>
<dd><code>valueSerde</code> - the value serde to use; if the serialized bytes is <code>null</code> for put operations,
it is treated as delete</dd>
<dt>Returns:</dt>
<dd>an instance of <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> than can build a <a href="WindowStore.html" title="interface in org.apache.kafka.streams.state"><code>WindowStore</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="timestampedWindowStoreBuilder(org.apache.kafka.streams.state.WindowBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)">
<h3>timestampedWindowStoreBuilder</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;K,<wbr>
V&gt;</span>
<span class="return-type"><a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="TimestampedWindowStore.html" title="interface in org.apache.kafka.streams.state">TimestampedWindowStore</a>&lt;K,<wbr>V&gt;&gt;</span>&nbsp;<span class="element-name">timestampedWindowStoreBuilder</span><wbr><span class="parameters">(<a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">WindowBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</span></div>
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="TimestampedWindowStore.html" title="interface in org.apache.kafka.streams.state"><code>TimestampedWindowStore</code></a>.
<p>
The provided supplier should <strong>not</strong> be a supplier for
<a href="WindowStore.html" title="interface in org.apache.kafka.streams.state"><code>WindowStores</code></a>. For this case, passed in timestamps will be dropped and not stored in the
window-store. On read, no valid timestamp but a dummy timestamp will be returned.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>K</code> - key type</dd>
<dd><code>V</code> - value type</dd>
<dt>Parameters:</dt>
<dd><code>supplier</code> - a <a href="WindowBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>WindowBytesStoreSupplier</code></a> (cannot be <code>null</code>)</dd>
<dd><code>keySerde</code> - the key serde to use</dd>
<dd><code>valueSerde</code> - the value serde to use; if the serialized bytes is <code>null</code> for put operations,
it is treated as delete</dd>
<dt>Returns:</dt>
<dd>an instance of <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can build a <a href="TimestampedWindowStore.html" title="interface in org.apache.kafka.streams.state"><code>TimestampedWindowStore</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="sessionStoreBuilder(org.apache.kafka.streams.state.SessionBytesStoreSupplier,org.apache.kafka.common.serialization.Serde,org.apache.kafka.common.serialization.Serde)">
<h3>sessionStoreBuilder</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;K,<wbr>
V&gt;</span>&nbsp;<span class="return-type"><a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state">StoreBuilder</a>&lt;<a href="SessionStore.html" title="interface in org.apache.kafka.streams.state">SessionStore</a>&lt;K,<wbr>V&gt;&gt;</span>&nbsp;<span class="element-name">sessionStoreBuilder</span><wbr><span class="parameters">(<a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state">SessionBytesStoreSupplier</a>&nbsp;supplier,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;K&gt;&nbsp;keySerde,
<a href="../../common/serialization/Serde.html" title="interface in org.apache.kafka.common.serialization">Serde</a>&lt;V&gt;&nbsp;valueSerde)</span></div>
<div class="block">Creates a <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> that can be used to build a <a href="SessionStore.html" title="interface in org.apache.kafka.streams.state"><code>SessionStore</code></a>.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>K</code> - key type</dd>
<dd><code>V</code> - value type</dd>
<dt>Parameters:</dt>
<dd><code>supplier</code> - a <a href="SessionBytesStoreSupplier.html" title="interface in org.apache.kafka.streams.state"><code>SessionBytesStoreSupplier</code></a> (cannot be <code>null</code>)</dd>
<dd><code>keySerde</code> - the key serde to use</dd>
<dd><code>valueSerde</code> - the value serde to use; if the serialized bytes is <code>null</code> for put operations,
it is treated as delete</dd>
<dt>Returns:</dt>
<dd>an instance of <a href="StoreBuilder.html" title="interface in org.apache.kafka.streams.state"><code>StoreBuilder</code></a> than can build a <a href="SessionStore.html" title="interface in org.apache.kafka.streams.state"><code>SessionStore</code></a></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>