Alan Braithwaite
@Caust1c
Twilio Segment
Gophercon EU 2021
Written in Go!
Open Source!
Fancy
Website!
ctlstore.segment.com
Separate your control plane from your data plane
Or your write-path from your read-path outside of data pipelines
https://segment.com/blog/exactly-once-delivery
Use your destination topic or database as a write-ahead log to recover from failures.
and The Segment Team
type Source interface {
Receive(context.Context) (Message, func(error), error)
}
type Sink interface {
Send(context.Context, func(error), ...Message) error
}
type Message struct {
Key []byte
Value []byte
Topic string
Attributes Attributes
}
type Handler interface {
HandleMeasures(time time.Time, measures ...Measure)
}
Drop-in replacement for encoding/json
Makes use of performance optimizations reliant on memory layout that may break between versions of Go
60-400 % performance improvement over Go v1.16.2 encoding/json
We don't believe that this code should be ported upstream to the standard encoding/json package. The standard library has to remain readable and approachable to maximize stability and maintainability, and make projects like this one possible because a high quality reference implementation already exists.
github.com/segmentio/topicctl
github.com/segmentio/events
github.com/segmentio/kafka-go
github.com/segmentio/ksuid
github.com/segmentio/cli
github.com/segmentio/chamber
github.com/segmentio/golines
github.com/segmentio/kubeapply
(all MIT Licensed)
The entire team at Segment
and the Go community
Alan Braithwaite
@Caust1c
Twilio Segment