~/talk

Persistence pays off: a new look at rom-rb

Talkat RubyConf AU 2017 · on Thursday, 2017-02-09· [ruby, databases]
slides:none on file

ROM 3.0 ships with a stable rom-sql adapter and rom-repository and rethinks persistence as composable objects and functional relations, combining relations repositories change sets to fetch, transform and persist application data. It reports small codebases—3,322 lines core, 2,102 lines SQL adapter, 1,080 lines repository (6,504 total)—and already powers integrations like Hanami and Trailblazer while adapters for HTTP, Dynamo and CouchDB exist in production or prototype, with ongoing work on performance, prepared statements and documentation.

AI-written summary · about

  1. 0:00Intro
  2. 1:423. How does it differ from typical rubygems? 4. Future challenges and how you can help
  3. 2:21Why rom-rb was created?
  4. 2:39Problem separating persistence from domain layer
  5. 6:04Application data is the most important part of your system
  6. 7:44It should be easy to retrieve application data from the database
  7. 8:00It should be easy to store application data transformed to a format compatible with your database
  8. 8:41Data integrity is crucial to have a healthy application
  9. 8:57It is the database that provides the best mechanisms to ensure data integrity, not fancy Ruby validation DSL
  10. 9:54rom-rb was created to address these issues
  11. 10:06How does rom-rb work?
  12. 10:54Repositories encapsulate accessing application data
  13. 12:08Through a simple convention, we hide database-specific DSLs behind our repository interface
  14. 12:51Relations encapsulate database queries
  15. 16:17Let's add custom sorting
  16. 20:29What about changing data?
  17. 20:47Changesets simplify creating and updating data in your database
  18. 24:15How rom-rb is different?
  19. 24:27rom-rb is functional
  20. 26:04rom-rb is object-oriented
  21. 27:11Composable gems
  22. 28:14Gems built with composition and reusability in mind are a great win for our ecosystem L
  23. 30:02Reminder: composition inheritance !
  24. 30:22Real world examples!
  25. 34:06USE IT !
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.