Multiple servers share a single source of truth, with revisions ensuring safe updates
Servers subscribe to key patterns and react instantly to changes (e.g. player movements, achievements or specialized events).
Retrieve objects using hierarchical key patterns with wildcards (*, >), and optionally filter by creation time, expiration, or JSON content. Ideal for managing temporary entries, buffs, or tracking events.
Ideal for networks where each server handles local gameplay but still stays in sync with global state.
The Octopus SDK only exists of 4 methods that are used for every kind of operation. Backends don't have to be hard.
Retrieves existing entries from the database matching a key pattern. Can optionally include expired objects and filter by revision creation time.
Stores an object on key with new revision in the database.
Stores an object on key with new revision in the database and returns the stored version, including the revision and ID.
Bidirectional stream for real-time updates. Clients register for key-patterns (ListenRegister) and receive events (EventCall).
1entry, _ := client.Call(ctx, &apiv1.Object{
2 Key: "hello.world",
3 Data: map[string]interface{}{"msg": "Hello servers!"},
4})
5
6fmt.Println("Sent message:", entry.Object.Data["msg"])1Sent message: Hello servers!1stream, _ := client.Listen(ctx)
2stream.Send(&apiv1.ListenMessage{Msg: &apiv1.ListenMessage_Register{
3 Register: &apiv1.ListenRegister{KeyPattern: "hello.world"},
4}})
5
6for {
7 e, _ := stream.Recv()
8 oldMsg := e.GetCallback().Object.Data["msg"]
9 e.GetCallback().Object.Data["msg"] = "Hello clients!"
10
11 fmt.Println("Received message:", oldMsg)
12 fmt.Println("Modified message:", e.GetCallback().Object.Data["msg"])
13
14 stream.Send(&apiv1.ListenMessage{Msg: &apiv1.ListenMessage_Callback{Callback: e.GetCallback()}})
15}1Received message: Hello servers!
2Modified message: Hello clients!Installing Octopus consist of a few steps and only takes a few minutes.
Generate mTLS certificates and set them (plus backup strategy) in values.yaml.
Apply the Helm chart using your values.yaml.
Clients connect to the server using their mTLS certificates.

o7studios is in no way affiliated with Mojang Studios, nor should it be considered a company endorsed by Mojang Studios.
© 2025 o7studios. All rights reserved.