Skip to content

Adding a data type

A new stable type touches several contracts. Keep them synchronized.

Add the DataType constant and wire name in internal/core/datatype.go. Stable IDs must not be reordered after release.

Add the concrete implementation under internal/types. Define synchronization inside the value when operations can be concurrent.

Use decodeTypedValue for direct SET construction or createValue for stateful CREATE construction.

Extend Dispatcher.applyOp and update read-operation classification so RBAC/AOF behavior is correct.

Update publicData when the concrete type needs a custom public representation.

Update the factory construction-path test and the Bash type manifest/contracts. Add Go unit tests for internal invariants and race-prone behavior.

Add or regenerate the type reference and list creation options, wire shape, operations, complexity/invariants where relevant, and examples.