← Files GoodMemARCHIVED FILE
skills/goodmem-sdk/references/java/examples/ingest-retrieve.md
2.11 KB · Oct 2, 2026 · 00:24 UTC
<!-- sdk-ref package=ai.pairsys:goodmem-java registry=maven version=0.2.2 -->
# Ingest and retrieve
Use an existing space with an embedder. Read [create](../memories/create.md),
[get](../memories/get.md), and [retrieve](../memories/retrieve.md) when adapting this.
Request details: [memory body](../models/JsonMemoryCreationRequest.md).
```java
import ai.pairsys.goodmem.client.Goodmem;
import ai.pairsys.goodmem.client.RetrieveMemoryStream;
import ai.pairsys.goodmem.client.models.*;
import java.time.Duration;
public class GoodmemExample {
public static void main(String[] args) throws Exception {
try (Goodmem client = Goodmem.builder()
.baseUrl(System.getenv("GOODMEM_BASE_URL"))
.apiKey(System.getenv("GOODMEM_API_KEY"))
.build()) {
String spaceId = System.getenv("GOODMEM_SPACE_ID");
Memory memory = client.memories.create(JsonMemoryCreationRequest.builder()
.spaceId(spaceId)
.originalContent("GoodMem stores and retrieves memories.")
.build());
long deadline = System.nanoTime() + Duration.ofMinutes(2).toNanos();
while (!"COMPLETED".equals(String.valueOf(memory.processingStatus()))) {
if ("FAILED".equals(String.valueOf(memory.processingStatus())))
throw new IllegalStateException("Memory processing failed; inspect job history in GoodMem.");
if (System.nanoTime() >= deadline)
throw new IllegalStateException("Memory is still processing; retry retrieval later.");
Thread.sleep(500);
memory = client.memories.get(memory.memoryId());
}
try (RetrieveMemoryStream events = client.memories.retrieve("what does GoodMem do?", spaceId)) {
for (RetrieveMemoryEvent event : events) {
if (event.retrievedItem() != null && event.retrievedItem().chunk() != null)
System.out.println(event.retrievedItem().chunk().chunk().chunkText());
}
}
}
}
}
```
[Java](../../java.md)
SHA-256: c57a75630464235d7e8ce4e6d87cfd0e346f103717fde54281f43e17bc981490