Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Datomic

1,876 views

Published on

Intro to Datomic talk at the DC Graph Database meetup group. November 11th 2014.

Published in: Software
  • Be the first to comment

Datomic

  1. 1. DATOMIC Jordan Leigh - @AlwaysBCoding
  2. 2. < > STACKS LOGO HERE Slogan line here www.website.com │ contact@website.com 2
  3. 3. < > STACKS LOGO HERE Slogan line here www.website.com │ contact@website.com 3 Ruby Rails jQuery PostgreSQL
  4. 4. < > STACKS LOGO HERE Slogan line here www.website.com │ contact@website.com 4 Ruby MongoDB Rails Express jQuery AngularJS PostgreSQL NodeJS
  5. 5. < > STACKS LOGO HERE Slogan line here www.website.com │ contact@website.com 5 Ruby MongoDB Clojure Rails Express ClojureScript ReactJS Datomic jQuery AngularJS PostgreSQL NodeJS
  6. 6. < > DATOMIC LOGO HERE Slogan line here www.website.com │ contact@website.com 6 Ruby MongoDB Clojure Rails Express ClojureScript ReactJS Datomic jQuery AngularJS PostgreSQL NodeJS
  7. 7. THE DATABASE AS A VALUE
  8. 8. WHAT IS A VALUE
  9. 9. 42 VALUE
  10. 10. [1, 2, 3] VALUE
  11. 11. :name “John Wall” :age 24 VALUE { }
  12. 12. <0x00000101a958d8> NOT A VALUE
  13. 13. person = Person.new(“John Wall”, 24) NOT A VALUE
  14. 14. Postgres Database NOT A VALUE
  15. 15. < > ADVANTAGES OF VALUES LOGO HERE Slogan line here www.website.com │ contact@website.com 15
  16. 16. < > ADVANTAGES OF VALUES LOGO HERE Slogan line here www.website.com │ contact@website.com 16 Easy to Share
  17. 17. < > ADVANTAGES OF VALUES LOGO HERE Slogan line here www.website.com │ contact@website.com 17 Easy to Share Reproducible Results
  18. 18. < > ADVANTAGES OF VALUES Reproducible Results LOGO HERE Slogan line here www.website.com │ contact@website.com 18 Easy to Share Easy to Fabricate
  19. 19. < > ADVANTAGES OF VALUES Reproducible Results LOGO HERE Slogan line here www.website.com │ contact@website.com 19 Easy to Share Easy to Fabricate Language Independent
  20. 20. < > ADVANTAGES OF VALUES Reproducible Results Language Independent LOGO HERE Slogan line here www.website.com │ contact@website.com 20 Easy to Share Easy to Fabricate Aggregate to Values
  21. 21. WHAT IS A FACT
  22. 22. John Wall plays for the Wizards WHAT IS A FACT
  23. 23. John Wall played for the Wizards on November 8th 2014 WHAT IS A FACT
  24. 24. Theodore Roosevelt held the position President of the United States on March 5th 1905 WHAT IS A FACT
  25. 25. Theodore Roosevelt March 5th 1905 WHAT IS A FACT position president
  26. 26. Theodore Roosevelt March 5th 1905 WHAT IS A FACT position president entity
  27. 27. Theodore Roosevelt March 5th 1905 WHAT IS A FACT position president attribute
  28. 28. Theodore Roosevelt position president value March 5th 1905 WHAT IS A FACT
  29. 29. Theodore Roosevelt March 5th 1905 WHAT IS A FACT position president timestamp
  30. 30. OO MODEL
  31. 31. OO MODEL
  32. 32. OO MODEL
  33. 33. FACT BASED MODEL
  34. 34. FACT BASED MODEL Timestamp
  35. 35. Timestamp Timestamp FACT BASED MODEL
  36. 36. Timestamp Timestamp Timestamp FACT BASED MODEL
  37. 37. A B C Timestamp Timestamp Timestamp GIT
  38. 38. < > ADVANTAGES OF VALUES Reproducible Results Language Independent LOGO HERE Slogan line here www.website.com │ contact@website.com 38 Easy to Share Easy to Fabricate Aggregate to Values
  39. 39. < > ADVANTAGES OF VALUES Reproducible Results Language Independent LOGO HERE Slogan line here www.website.com │ contact@website.com 39 Easy to Share Easy to Fabricate Aggregate to Values
  40. 40. {…} timestamp ONE FACT
  41. 41. [{…}, {…}, {…}, {…}, {…}, {…}] time A SERIES OF FACTS OVER TIME
  42. 42. [entity, attribute, value, timestamp] STRUCTURE OF A FACT
  43. 43. [entity, attribute, value, timestamp] [Wizards Ticket, price, $60, 11-11-2014 12:00pm] STRUCTURE OF A FACT
  44. 44. [entity, attribute, value, timestamp] [Wizards Ticket, price, $60, 11-11-2014 12:00pm] DATOM STRUCTURE OF A FACT
  45. 45. [DATOM, DATOM, DATOM, DATOM, DATOM] time A SERIES OF DATOMS OVER TIME
  46. 46. [DATOM, DATOM, DATOM, DATOM, DATOM] time DATOMIC A SERIES OF DATOMS OVER TIME
  47. 47. QUERY
  48. 48. APP HOW ARE WE DOING THIS NOW
  49. 49. APP HOW ARE WE DOING THIS NOW
  50. 50. APP “…” HOW ARE WE DOING THIS NOW
  51. 51. APP “…” HOW ARE WE DOING THIS NOW
  52. 52. APP “…” value HOW ARE WE DOING THIS NOW
  53. 53. APP “…” value HOW ARE WE DOING THIS NOW
  54. 54. APP “…” value manipulate with code HOW ARE WE DOING THIS NOW
  55. 55. DATOMIC APP
  56. 56. DATOMIC APP
  57. 57. DATOMIC APP value
  58. 58. DATOMIC APP db value
  59. 59. DATOMIC APP db value value
  60. 60. manipulate with code DATOMIC APP db value value
  61. 61. [{…}, {…}, {…}, {…}, {…}, {…}] time A SERIES OF FACTS OVER TIME
  62. 62. [{…}, {…}, {…}, {…}, {…}, {…}] PATTERN [{…}, {…}, {…}] PATTERN MATCHING
  63. 63. datomic.db.Db@4163cc8b [:find ?name :where [?eid :nba.team/city “washington”] [?eid :nba.team/name ?name]] #{[“wizards”]} DATALOG
  64. 64. APP “…” value HOW ARE WE DOING THIS NOW
  65. 65. [{…}, {…}, {…}, {…}, {…}, {…}] QUERY RESULT PATTERN MATCHING
  66. 66. [{…}, {…}, {…}, {…}, {…}, {…}] QUERY RESULT PATTERN MATCHING
  67. 67. [{…}, {…}, {…}, {…}, {…}, {…}] QUERY RESULT PATTERN MATCHING
  68. 68. [{…}, {…}, {…}, {…}, {…}, {…}] QUERY RESULT PATTERN MATCHING
  69. 69. SCHEMA
  70. 70. < > SCHEMA CONCEPTS LOGO HERE Slogan line here www.website.com │ contact@website.com 70
  71. 71. < > SCHEMA CONCEPTS LOGO HERE Slogan line here www.website.com │ contact@website.com 71 Declaration of Entity Types
  72. 72. < > SCHEMA CONCEPTS LOGO HERE Slogan line here www.website.com │ contact@website.com 72 Declaration of Entity Types Whitelist of Attributes by Entity Type
  73. 73. < > SCHEMA CONCEPTS Whitelist of Attributes by Entity Type LOGO HERE Slogan line here www.website.com │ contact@website.com 73 Declaration of Entity Types Declaration of which attributes are references
  74. 74. Entity SCHEMA CONCEPTS
  75. 75. NBA Team SCHEMA CONCEPTS
  76. 76. NBA Team SCHEMA CONCEPTS City: STRING Name: STRING Logo: URI
  77. 77. NBA Team SCHEMA CONCEPTS City: “washington” Name: “wizards” Logo: http://cdn.something.com/nba/logos/wizards.svg
  78. 78. NBA Player SCHEMA CONCEPTS
  79. 79. NBA Player SCHEMA CONCEPTS Name: STRING Birthdate: INSTANT CurrentTeam: REF
  80. 80. NBA Player Birthdate: #inst September 6 1990 SCHEMA CONCEPTS Name: “John Wall” CurrentTeam: 176523498213
  81. 81. Wizards John Wall CurrentTeam SCHEMA CONCEPTS
  82. 82. SCHEMA CONCEPTS John Wall Wizards PLAYER TEAM
  83. 83. SCHEMA CONCEPTS John Wall Wizards wizards vs. nets PLAYER TEAM GAME
  84. 84. SCHEMA CONCEPTS John Wall Wizards wizards vs. nets PLAYER TEAM GAME Dunk @ 7:00 1Q GAME EVENT
  85. 85. SCHEMA CONCEPTS John Wall Wizards wizards vs. nets PLAYER TEAM GAME Dunk @ 7:00 1Q GAME EVENT scored by
  86. 86. SCHEMA CONCEPTS John Wall Wizards wizards vs. nets PLAYER TEAM GAME Dunk @ 7:00 1Q GAME EVENT Otto Porter PLAYER scored by assisted by
  87. 87. SCHEMA CONCEPTS John Wall Wizards wizards vs. nets PLAYER TEAM GAME Dunk @ 7:00 1Q GAME EVENT Otto Porter PLAYER scored by assisted by
  88. 88. OTHER NOTES
  89. 89. < > THE GOOD LOGO HERE Slogan line here www.website.com │ contact@website.com 89
  90. 90. < > THE GOOD LOGO HERE Slogan line here www.website.com │ contact@website.com 90 Decoupled from Storage
  91. 91. < > THE GOOD LOGO HERE Slogan line here www.website.com │ contact@website.com 91 Decoupled from Storage Functions in the Database
  92. 92. < > THE GOOD Functions in the Database LOGO HERE Slogan line here www.website.com │ contact@website.com 92 Decoupled from Storage TX Report Queue
  93. 93. < > THE BAD LOGO HERE Slogan line here www.website.com │ contact@website.com 93
  94. 94. < > THE BAD LOGO HERE Slogan line here www.website.com │ contact@website.com 94 Not open source
  95. 95. < > THE BAD LOGO HERE Slogan line here www.website.com │ contact@website.com 95 Not open source Paid license to use in production
  96. 96. < > THE BAD Paid license to use in production LOGO HERE Slogan line here www.website.com │ contact@website.com 96 Not open source Documentation around deployment is rough
  97. 97. CODE

×