# Packages

Package grpcsync implements (in ALPHA VERSION) the gRPC client and server that satisfies the datasync API (see the definition of the service in ../syncbase/msg package).
Package kvdbsync defines a key-value data store client API for unified access among key-value datastore servers.
Package msgsync propagates protobuf messages to a particular topic.
Package restsync implements (in ALPHA VERSION) the datasync API for the HTTP/REST transport.
Package resync implements the mechanism to notify previously registered plugins that the resync procedure needs to start.
Package syncbase defines common structures used in multiple datasync transports.

# Functions

WithClientLifetimeTTL creates a new instance of ClientLifetimeTTL option.
WithPrefix creates a new instance of WithPrefixOpt.
WithTTL creates a new instance of TTL option.

# Constants

DefaultNotifTimeout defines the default timeout for datasync notification delivery.
Delete represents Delete operation.
InvalidOp is default value representing invalid operation.
Put can represent Create or Update operation.

# Structs

AggregatedRegistration is adapter that allows multiple registrations (WatchRegistration) to be aggregated in one.
DelOptionMarker is meant for anonymous composition in With*Opt structs.
PutOptionMarker is meant for anonymous composition in With*Opt structs.
WithClientLifetimeTTLOpt defines option to Put a value for the lifetime of client.
WithPrefixOpt applies an operation to all items with the specified prefix.
WithTTLOpt defines TTL for Put operation.

# Interfaces

CallbackResult can be used by an event receiver to indicate to the event producer whether an operation was successful (error is nil) or unsuccessful (error is not nil).
ChangeEvent is used to define the data type for the change channel (<changeChan> from KeyValProtoWatcher.Watch).
ChangeValue represents a single propagated change.
DelOption defines options for Del operation.
KeyProtoValWriter allows plugins to push their data changes to a data store.
KeyVal represents a single key-value pair.
KeyValIterator is an iterator for KeyVal.
KeyValProtoWatcher is used by plugins to subscribe to both data change events and data resync events.
LazyValue defines value that is unmarshaled into proto message on demand.
ProtoWatchResp contains changed value.
PutOption defines options for Put operation.
ResyncEvent is used to define the data type for the resync channel (<resyncChan> from KeyValProtoWatcher.Watch).
WatchRegistration is a facade that avoids importing the io.Closer package into Agent plugin implementations.
WithChangeType is a simple helper interface embedded by all interfaces that require access to change type information.
WithKey is a simple helper interface embedded by all interfaces that require access to the key of the key-value pair.
WithPrevValue is a simple helper interface embedded by all interfaces that require access to the previous value.
WithRevision is a simple helper interface embedded by all interfaces that require access to the value revision.

# Type aliases

KVProtoWatchers is an adapter that allows multiple watchers (KeyValProtoWatcher) to be aggregated in one.
KVProtoWriters is an adapter that allows multiple writers (KeyProtoValWriter) in one.
Op represents datasync operations.