Fundamentals

Go Data Placement

Install the Go 1.25+ SDK:

go get github.com/neutron-ai/neutron/packages/sdk-go

The official module handles runtime memory calls. The same program uses net/http for Nucleus control-plane endpoints that are not yet exposed as typed Go methods.

Control-plane helper and provisioning

package main

import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
    "os"
    "strings"
    "time"

    neutron "github.com/neutron-ai/neutron/packages/sdk-go"
)

func requiredEnv(name string) (string, error) {
    value := os.Getenv(name)
    if strings.TrimSpace(value) == "" {
        return "", fmt.Errorf("%s is required", name)
    }
    return value, nil
}

func neutronRequest(
    ctx context.Context,
    httpClient *http.Client,
    baseURL string,
    token string,
    method string,
    path string,
    body map[string]any,
) (map[string]any, error) {
    var requestBody io.Reader
    if body != nil {
        payload, err := json.Marshal(body)
        if err != nil {
            return nil, err
        }
        requestBody = bytes.NewReader(payload)
    }

    request, err := http.NewRequestWithContext(
        ctx,
        method,
        strings.TrimRight(baseURL, "/")+path,
        requestBody,
    )
    if err != nil {
        return nil, err
    }
    request.Header.Set("authorization", "Bearer "+token)
    request.Header.Set("content-type", "application/json")

    response, err := httpClient.Do(request)
    if err != nil {
        return nil, err
    }
    defer response.Body.Close()

    rawBody, err := io.ReadAll(response.Body)
    if err != nil {
        return nil, err
    }
    if response.StatusCode >= 400 {
        return nil, fmt.Errorf("Neutron request failed: %s", response.Status)
    }
    output := map[string]any{}
    if len(rawBody) > 0 {
        err = json.Unmarshal(rawBody, &output)
    }
    return output, err
}

func provisionNuclei(
    ctx context.Context,
    httpClient *http.Client,
    baseURL string,
    workspaceKey string,
) error {
    profiles := []map[string]any{
        {
            "nucleusId": "product-knowledge-global",
            "name":      "Global product knowledge",
            "placement": map[string]any{
                "mode":      "global",
                "guarantee": "none",
                "notes":     []string{"Approved global knowledge; no jurisdictional storage guarantee."},
            },
        },
        {
            "nucleusId": "support-operations-weur",
            "name":      "Western Europe support operations",
            "placement": map[string]any{
                "mode":           "regional",
                "regionHint":     "weur",
                "r2LocationHint": "weur",
                "guarantee":      "best_effort_regional",
                "notes":          []string{"Latency preference only; not a legal residency boundary."},
            },
        },
        {
            "nucleusId": "regulated-cases-eu",
            "name":      "EU regulated case memory",
            "placement": map[string]any{
                "mode":                     "jurisdictional",
                "jurisdiction":             "eu",
                "regionalServicesRequired": true,
                "metadataBoundaryRequired": true,
                "geoKeyManagerRequired":    false,
                "guarantee":                "jurisdictional_storage",
                "notes": []string{
                    "Requires the EU Durable Object jurisdiction and matching EU archive binding.",
                    "Processing, logs, metadata, keys, retention, and contracts require separate verification.",
                },
            },
        },
    }

    for _, profile := range profiles {
        if _, err := neutronRequest(ctx, httpClient, baseURL, workspaceKey, http.MethodPost, "/v1/nuclei", profile); err != nil {
            return err
        }
    }
    return nil
}

Treat an already-existing Nucleus as explicit deployment state. Do not recreate it with a changed placement profile.

Build the memory router

type memoryRouter struct {
    global        *neutron.Client
    westernEurope *neutron.Client
    euRegulated   *neutron.Client
}

func newMemoryRouter(baseURL string) (*memoryRouter, error) {
    globalToken, err := requiredEnv("NEUTRON_GLOBAL_TOKEN")
    if err != nil {
        return nil, err
    }
    westernEuropeToken, err := requiredEnv("NEUTRON_WEUR_TOKEN")
    if err != nil {
        return nil, err
    }
    euToken, err := requiredEnv("NEUTRON_EU_TOKEN")
    if err != nil {
        return nil, err
    }

    global, err := neutron.NewClient(neutron.Options{
        BaseURL: baseURL, Token: globalToken, NucleusID: "product-knowledge-global",
    })
    if err != nil {
        return nil, err
    }
    westernEurope, err := neutron.NewClient(neutron.Options{
        BaseURL: baseURL, Token: westernEuropeToken, NucleusID: "support-operations-weur",
    })
    if err != nil {
        return nil, err
    }
    euRegulated, err := neutron.NewClient(neutron.Options{
        BaseURL: baseURL, Token: euToken, NucleusID: "regulated-cases-eu",
    })
    if err != nil {
        return nil, err
    }
    return &memoryRouter{global: global, westernEurope: westernEurope, euRegulated: euRegulated}, nil
}

func (router *memoryRouter) storeGlobalProductKnowledge(ctx context.Context, text string) error {
    _, err := router.global.Remember(ctx, map[string]any{
        "scopeId": "kb:approved-products", "type": "knowledge",
        "privacyClass": "public", "text": text,
    })
    return err
}

func (router *memoryRouter) storeWesternEuropeSupportLesson(ctx context.Context, text string) error {
    _, err := router.westernEurope.Remember(ctx, map[string]any{
        "scopeId": "history:support-resolutions", "type": "tool_lesson",
        "privacyClass": "tenant", "text": text,
    })
    return err
}

func (router *memoryRouter) storeEURegulatedCase(
    ctx context.Context,
    caseID string,
    minimizedSummary string,
) error {
    _, err := router.euRegulated.Remember(ctx, map[string]any{
        "scopeId": "case:" + caseID, "type": "experience",
        "privacyClass": "user_private", "text": minimizedSummary,
        "metadata": map[string]any{
            "dataClass": "eu-regulated-case", "source": "approved-case-summary",
        },
    })
    return err
}

Do not expose a generic “choose Nucleus” operation to untrusted callers. Route through these domain-specific methods.

Recall and verify the EU boundary

func (router *memoryRouter) euCaseContext(ctx context.Context) (map[string]any, error) {
    return router.euRegulated.AgentContext(ctx, map[string]any{
        "scopeIds": []string{
            "case:case-4821", "policy:eu-case-handling", "kb:approved-products",
        },
        "agentId":       "agent:eu-case-support",
        "task":          "Prepare the next authorized case-support step.",
        "privacyClasses": []string{"tenant", "user_private"},
        "tokenBudget":   1200,
        "cachePolicy": map[string]any{
            "mode": "prefer_cache", "keyMode": "intent_profile", "ttlSeconds": 120,
            "includeDynamicRag": true, "allowSensitive": false,
        },
    })
}

func verifyEUReadiness(
    ctx context.Context,
    httpClient *http.Client,
    baseURL string,
    euToken string,
) error {
    _, err := neutronRequest(ctx, httpClient, baseURL, euToken, http.MethodGet, "/v1/nuclei/regulated-cases-eu/placement", nil)
    if err != nil {
        return err
    }
    health, err := neutronRequest(ctx, httpClient, baseURL, euToken, http.MethodGet, "/v1/nuclei/regulated-cases-eu/health", nil)
    if err != nil {
        return err
    }
    blocking := map[string]bool{
        "jurisdictional_do_subnamespace_unavailable": true,
        "jurisdictional_archive_bucket_missing":     true,
    }
    if warnings, ok := health["warnings"].([]any); ok {
        for _, warning := range warnings {
            if value, ok := warning.(string); ok && blocking[value] {
                return fmt.Errorf("EU Nucleus is not ready: %s", value)
            }
        }
    }
    return nil
}

func main() {
    ctx := context.Background()
    httpClient := &http.Client{Timeout: 30 * time.Second}
    baseURL, err := requiredEnv("NEUTRON_API_URL")
    if err != nil {
        panic(err)
    }
    workspaceKey, err := requiredEnv("NEUTRON_WORKSPACE_API_KEY")
    if err != nil {
        panic(err)
    }
    if err := provisionNuclei(ctx, httpClient, baseURL, workspaceKey); err != nil {
        panic(err)
    }
    router, err := newMemoryRouter(baseURL)
    if err != nil {
        panic(err)
    }
    if _, err := router.euCaseContext(ctx); err != nil {
        panic(err)
    }
    euToken, _ := requiredEnv("NEUTRON_EU_TOKEN")
    if err := verifyEUReadiness(ctx, httpClient, baseURL, euToken); err != nil {
        panic(err)
    }
}

All scopes in euCaseContext resolve inside regulated-cases-eu; no cross-Nucleus recall occurs.

Return to the placement architecture and production checklist.