Skip to main content

Extensibility

Garnet offers several ways to extend its core functionality:

  • Custom Raw String Command
  • Custom Object Command
  • Custom Transaction
  • Custom Procedure
  • Module

The below section describes those ways and the appropriate scenario to use them.

Custom Raw String Command​

This is used to operate on a single key with raw string values. The records are stored as raw-string values in Garnet's unified store.

Details available here.

Custom Object Command​

This command operates on a single key as well, but on data-structure (object) values in Garnet's unified store. This is used to expose commands that perform operations on custom data types.

Details available here.

Custom Transaction​

Custom transactions allow operating on multiple commands within a single block of execution in a transactional manner. This ensures atomicity during execution of the whole block.

Details available here.

Custom Procedure​

This allows to invoke multiple commands within a single block as well. However, the commands are executed in a non-transactional manner as if they were individually issued by a client.

Details available here.

Module​

A module offers a way to package all related extension commands, procedures and transactions into a single binary to be loaded into Garnet.

Details available here.