-
Notifications
You must be signed in to change notification settings - Fork 0
/
computation.go
39 lines (38 loc) · 1.15 KB
/
computation.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Package concord implements API client library for
// Concord streams event processing system.
//
// Your worker must implement Computation interface.
// In main() handler call concord.Serve() to start the worker.
//
// Example:
// package main
//
// import "github.com/concord/concord-go"
//
// type Demo struct{}
// func (*Demo) Init(*concord.Context) error {return nil}
// func (*Demo) Destroy() error {return nil}
// func (*Demo) ProcessRecords(*concord.Context, *concord.Record) error {return nil}
// func (*Demo) ProcessTimer(*concord.Context, int64, string) error {return nil}
// func (*Demo) Metadata() *concord.Metadata {
// return &concord.Metadata{
// Name: "demo",
// }
// }
//
// func main() {
// concord.Serve(&Demo{})
// }
//
// See more real-world examples in examples/ subdirectory.
package concord
// Computation defines Concord Computation.
//
// User must implement this interface for it's own computation worker.
type Computation interface {
Init(*Context) error
Destroy() error
ProcessRecords(*Context, *Record) error
ProcessTimer(*Context, int64, string) error
Metadata() *Metadata
}