More Related Content Similar to Users as Data (20) Users as Data9. Builds as Data
(defproject energy-comparison "1.0.0"
:description "pricing service"
:dependencies
[[org.clojure/clojure "1.4.0"]
...)
13. Everything as Data
• Data, in its most essential form
• Few simple abstractions
• map, seq, fn
• General library
• map, filter, sort, take
22. Energy Replication, ETL
Insurance
Credit Cards
Session DB Warehouse
Broadband
23. Data Muddling
Energy Replication, ETL
Insurance
Credit Cards
Session DB Warehouse
Broadband
25. Energy Insurance
Integration DB
Credit Cards Broadband
29. The Joy of Clojure
• Functional
• Separation of computation and data
30. The Joy of Clojure
• Functional
• Separation of computation and data
• Immutable state
31. The Joy of Clojure
• Functional
• Separation of computation and data
• Immutable state
• Data as data
32. The Joy of Clojure
• Functional
• Separation of computation and data
• Immutable state
• Data as data
• Time, state and identity
35. fn fn
S0 S1 S2
User
(Identity)
Time
36. User
fn fn
S0 S1 S2
User
(Identity)
Time
42. “It is better to skip the massive up-
front time and expense, focusing
instead on making it very fast and easy
to add new data sources or new
elements to existing sources.”
Source: http://thinkrelevance.com/blog/2012/04/04/big-data-reference-model
43. data
data ecosystem
warehousing
47. {:user-id 1234
:email "paul@forward.co.uk"}
{:method :GET
:uri “/”
{:user-id 1234 :user-id 1234}
:postcode "NW3 2LB"}
{:user-id 1234
:energy-consumption {:gas {:units :kwh
:value 20500}}}
52. $ ./print.sh -u <user-id>
(->> (events aggregator)
(filter (criteria :user-id "pingles")))