eventing

module
v0.0.0-...-31abfad Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2024 License: Apache-2.0

README

Eventing

This is the Couchbase Eventing engine. It is intended to allow associating user code with any event that occurs inside Couchbase Server. An event is a change in state of any element of the server. Initial focus is on data state changes, but future versions will bring ability to handle non-data event.

Eventing is a MDS enabled service, and will run user supplied code on nodes designated with Eventing role. The role supports linear scalability and online rebalance. The consistency model is same as the GSI model, which is ability to do unbounded consistency, and at-or-after consistency.

We use Google V8 to run user supplied Javascript code. we do not support full Javascript syntax, because the programming model we offer needs to automatically parallelize on multiple nodes to handle the volume of events. For example, no global variables are accessible in event handlers.

We add a number of extensions to Javascript to make it easy to work with Couchbase. For example, Couchbase Buckets appear as javascript maps, N1QL results can be iterated over using javascript iterators and a number of added functions allow event handlers to send messages, raise more events etc.

Directories

Path Synopsis
cmd
dcp
Package couchbase provides a smart client for go.
Package couchbase provides a smart client for go.
transport
Package transport is binary protocol packet formats and constants.
Package transport is binary protocol packet formats and constants.
transport/client
Package memcached provides a memcached binary protocol client.
Package memcached provides a memcached binary protocol client.
gen
auditevent
No code here; only exists so that the package github.com/couchbase/eventing/gen/auditevent exists for other projects running "go mod tidy"
No code here; only exists so that the package github.com/couchbase/eventing/gen/auditevent exists for other projects running "go mod tidy"
flatbuf
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf exists for other projects running "go mod tidy"
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf exists for other projects running "go mod tidy"
flatbuf/cfg
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf/cfg exists for other projects running "go mod tidy"
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf/cfg exists for other projects running "go mod tidy"
flatbuf/header
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf/header exists for other projects running "go mod tidy"
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf/header exists for other projects running "go mod tidy"
flatbuf/payload
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf/payload exists for other projects running "go mod tidy"
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf/payload exists for other projects running "go mod tidy"
flatbuf/response
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf/response exists for other projects running "go mod tidy"
No code here; only exists so that the package github.com/couchbase/eventing/gen/flatbuf/response exists for other projects running "go mod tidy"
parser
No code here; only exists so that the package github.com/couchbase/eventing/gen/parser exists for other projects running "go mod tidy"
No code here; only exists so that the package github.com/couchbase/eventing/gen/parser exists for other projects running "go mod tidy"
version
No code here; only exists so that the package github.com/couchbase/eventing/gen/version exists for other projects running "go mod tidy"
No code here; only exists so that the package github.com/couchbase/eventing/gen/version exists for other projects running "go mod tidy"
tests
timers
tools

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL