diff --git a/composite_barrier.go b/composite_barrier.go
new file mode 100644
index 0000000..30799d2
--- /dev/null
+++ b/composite_barrier.go
@@ -0,0 +1,28 @@
+package disruptor
+
+// performance TODO: type CompositeBarrier []*Cursor
+type CompositeBarrier struct {
+	cursors []*Cursor
+}
+
+func NewCompositeBarrier(upstream ...*Cursor) *CompositeBarrier {
+	if len(upstream) == 0 {
+		panic("At least one upstream cursor is required.")
+	}
+
+	cursors := make([]*Cursor, len(upstream))
+	copy(cursors, upstream)
+	return &CompositeBarrier{cursors}
+}
+
+func (this *CompositeBarrier) Read(noop int64) int64 {
+	minimum := MaxSequenceValue
+	for _, item := range this.cursors {
+		sequence := item.Load()
+		if sequence < minimum {
+			minimum = sequence
+		}
+	}
+
+	return minimum
+}
diff --git a/composite_barrier_test.go b/composite_barrier_test.go
new file mode 100644
index 0000000..9696429
--- /dev/null
+++ b/composite_barrier_test.go
@@ -0,0 +1,15 @@
+package disruptor
+
+import "testing"
+
+func BenchmarkCompositeBarrierRead(b *testing.B) {
+	barrier := NewCompositeBarrier(NewCursor(), NewCursor(), NewCursor(), NewCursor())
+
+	iterations := int64(b.N)
+	b.ReportAllocs()
+	b.ResetTimer()
+
+	for i := int64(0); i < iterations; i++ {
+		barrier.Read(0)
+	}
+}
diff --git a/cursor.go b/cursor.go
index ac950f5..300796f 100644
--- a/cursor.go
+++ b/cursor.go
@@ -1,6 +1,7 @@
 package disruptor
 
 const (
+	MaxSequenceValue     int64 = (1 << 63) - 1
 	InitialSequenceValue int64 = -1
 	cpuCacheLinePadding        = 7
 )
diff --git a/cursor_test.go b/cursor_test.go
index 970025a..9752c85 100644
--- a/cursor_test.go
+++ b/cursor_test.go
@@ -38,3 +38,15 @@
 		cursor.Read(i)
 	}
 }
+
+func BenchmarkCursorAsBarrier(b *testing.B) {
+	var barrier Barrier = NewCursor()
+
+	iterations := int64(b.N)
+	b.ReportAllocs()
+	b.ResetTimer()
+
+	for i := int64(0); i < iterations; i++ {
+		barrier.Read(0)
+	}
+}
diff --git a/writer_test.go b/writer_test.go
index 990f63d..30edd90 100644
--- a/writer_test.go
+++ b/writer_test.go
@@ -22,7 +22,7 @@
 	b.ReportAllocs()
 	b.ResetTimer()
 
-	read.Store(1<<63 - 1)
+	read.Store(MaxSequenceValue)
 	for i := int64(0); i < iterations; i++ {
 		writer.Reserve(1)
 	}
