Using Apache Ignite from a Scala Agent
SkillDatabases & dataUsing Apache Ignite from a Scala Golem agent through golem.host.Rdbms.Ignite. Use when the user asks to connect to Apache Ignite 2, run SQL over Ignite, or use Ignite from Scala agent code.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Using Apache Ignite from a Scala Agent skill
What this skill tells your AI
The instructions your AI receives, as published by golemcloud/golem in golem-skills/skills/scala/golem-add-ignite-scala/SKILL.md and read by ahel’s review.
The Scala SDK already wraps golem:rdbms/ignite2@1.5.0 in golem.host.Rdbms.
Imports
import golem.host.Rdbms
import golem.host.Rdbms._
Open a Connection
Ignite uses thin-client URLs like ignite://host:10800.
Rdbms.Ignite.open("ignite://127.0.0.1:10800")
open, query, execute, commit, and rollback all return Either[DbError, T] instead of throwing.
If the user asks for a method that returns a plain String, keep the public method signature as
String and handle host errors inside the method (e.g. with .fold(e => throw new RuntimeException(e.toString), identity))
rather than changing the signature to Either[DbError, _].
Query Data
Ignite placeholders use ?.
val message =
for {
conn <- Rdbms.Ignite.open("ignite://127.0.0.1:10800")
result <- conn.query("SELECT ?", List(IgniteDbValue.DbString("hello")))
row <- result.rows.headOption.toRight(DbError.Other("query returned no rows"))
value <- row.values.headOption.toRight(DbError.Other("query returned no columns"))
text <- value match {
case IgniteDbValue.DbString(value) => Right(value)
case other => Left(DbError.Other(s"Unexpected Ignite value: $other"))
}
} yield text
Execute Statements
conn.execute(
"""CREATE TABLE IF NOT EXISTS notes (
| id INT PRIMARY KEY,
| body VARCHAR
|) WITH "CACHE_NAME=notes"""".stripMargin,
List.empty,
)
When creating Ignite tables through SQL, include WITH "CACHE_NAME=...".
Transactions
for {
conn <- Rdbms.Ignite.open(url)
tx <- conn.beginTransaction()
_ <- tx.execute(
"INSERT INTO notes (id, body) VALUES (?, ?)",
List(IgniteDbValue.DbInt(1), IgniteDbValue.DbString("hello")),
)
_ <- tx.commit()
} yield ()
If you need transactional tables, create them with ATOMICITY=TRANSACTIONAL in the table options.
Signals
- GitHub stars
- 2k
- Forks
- 212
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
golem-add-ignite-scala- Source
- github.com/golemcloud/golem