import Aixys from '@aixys/sdk';
const aixys = new Aixys({ token: process.env.AIXYS_TOKEN! });
// Fire a typed event onto the memory bus.
const evt = await aixys.events.create({
subject_kind: 'Deal',
subject_id: 'dl_9f2',
verb: 'updated',
payload: {
stage: 'negotiation',
amount: 184_000,
},
});
// Subscribe to the same bus — typed, streamed.
for await (const e of aixys.events.stream({ kind: 'Deal' })) {
console.log(e.verb, e.subject_id, e.payload.stage);
}INTEGRATIONS · SDKs
Typed SDKs.
In your language.
TypeScript, Python, Go, and a curl cheatsheet for every CI pipeline. One first call — fire a typed event onto the memory bus and subscribe to the live stream.
INTEGRATIONS · SDKs
Your first call. In any language.
The SDK is a thin, typed wrapper on the same memory bus — never a translation layer. Fire an event, or subscribe to the stream, in the language you already write.
SDK · INTERNALS
A thin wrapper. Not a translation layer.
Each SDK is a typed client against the same OpenAPI spec. No client-side logic, no hidden state — just retries, streaming, and strongly-typed helpers.
OpenAPI spec
source of truth
Code gen
per language
Typed client
retries · SSE
Streams
iterators · chans
Record · replay
cassettes
Tracing
OTEL · trace_id
INTEGRATIONS · SDK CONTRACT
Two client types. All languages.
AixysClient
The root client in every language — auth, transport, retry.
- tokenstringbearer · rotatable
- base_urlstringoverride for sandbox
- retryjsonexponential · jitter
- transportenumhttp | sse | queue
- timeout_msnumberdefault 30_000
StreamHandle
Language-idiomatic iterator over an SSE connection.
- idulid
- filterjsonkind · verb · since
- backpressureenumdrop | queue | block
- on_closefnreconnect behaviour
PLATFORM · CLOSE THE LOOP
One shape. Four syntaxes.
The SDKs are generated from the same OpenAPI spec, so types, retries, and streaming semantics are identical across languages. Bring your stack.