Slide 1

Slide 1 text

Who Am I Data Science & Engineering * Machine Learning * Distributed Systems * Computation Art

Slide 2

Slide 2 text

Mechanics of Data Pipelines

Slide 3

Slide 3 text

Outline * Problem motivation @ SC * Proposed properties * Mechanics * Open problems

Slide 4

Slide 4 text

SoundCloud * ~300 employees * Most working with data * Product driven * Microservices

Slide 5

Slide 5 text

Organisations which design systems ... are constrained to produce designs which are copies of the communication structures of these organisations — M. Conway Conway's law

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Counting service * 10^6 reads/sec * 10^4 writes/sec * Maintains counts for all time

Slide 9

Slide 9 text

Challenges * Counts are subject to spam * Deleting data is painful * Can’t do full lambda

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Royalties Reporting * Complex calculation * Interdisciplinary effort * Low frequency

Slide 12

Slide 12 text

Challenges * Wide dependencies * Multiplicative error * Reports require auditing

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Internal Analytics * AB Testing * Ad hoc queries * Dashboards

Slide 15

Slide 15 text

Challenges * Lots of small ETL * Trans-datastore * Deep dependencies

Slide 16

Slide 16 text

TODO It’s a mess Emergent Data Pipelines * Different runtimes * Untouchable Legacy * Different processing steps * Cross dependencies

Slide 17

Slide 17 text

Failure * Transient Failure * Input set variance * Hard to test new code * Misunderstood dependency

Slide 18

Slide 18 text

TODO It’s a mess Consequence * Blocking Failures * Risk Aversion * Manual Intervention * Low coherence

Slide 19

Slide 19 text

Desired * Minimal human intervention * High coherence * Risk Tolerant * Incremental

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Convergent * Incremental improvement * Automatic propagation * Low human intervention

Slide 22

Slide 22 text

Retroactive * Incremental re-computation * Time independence * Map input -> output

Slide 23

Slide 23 text

Persistent * Keep old computations * Comparable version * Don’t fear change

Slide 24

Slide 24 text

Entities

Slide 25

Slide 25 text

Datasource * Lambda architecture * Low complexity repairs * Inefficient

Slide 26

Slide 26 text

Partition * Date/time buckets * Time dependencies * Moderate efficiency

Slide 27

Slide 27 text

Chunk * Individual files * High incrementality * High complexity

Slide 28

Slide 28 text

Entities

Slide 29

Slide 29 text

Entities

Slide 30

Slide 30 text

Entities

Slide 31

Slide 31 text

HDFS

Slide 32

Slide 32 text

Redshift

Slide 33

Slide 33 text

Cassandra

Slide 34

Slide 34 text

Persistent

Slide 35

Slide 35 text

Retroactive

Slide 36

Slide 36 text

Convergent

Slide 37

Slide 37 text

Open Problems * Acceptance Testing * Materialising views * Data Discovery

Slide 38

Slide 38 text

Acceptance Testing * Interface focused * Risk minimisation * Continuous delivery

Slide 39

Slide 39 text

Materialised Views * Ephemeral representation * Non durable * Asynchronous

Slide 40

Slide 40 text

Data Discovery * Consumers/Producers * Service which coordinates jobs * Movable data sets

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

* Conways law is real * Design as data structure * Abstract and apply Conclusion

Slide 43

Slide 43 text

Emily Green Omid Aladini S e b a s t i a n O h m F ro n x Wurmus Matthias Georgi Thank You David Whiting Lorand Kasler Gavin Bell Jon Glover Erik Bartels