~/talk

Monoliths Between Microservices

Talkat RailsConf 2020 CE · 2020-05-04..05-05· [ruby-on-rails, frontend-architecture]
slides:none on file

Rails apps split into component-based monoliths using Rails engems (engines + local gems) and a concrete recipe: namespace isolation, Gemfile eval_gemfile sync, shared lock via a root Gemfile, Combustion for dummy apps, migrations via extra migration paths, ActiveSupport load hooks and a Base and Behavior convention, CI that runs tests only for dirty engines, and pub/sub via railseventstore wrapped by active_event_store wrapper. This is applied to Common/Kin (connect_by, meet_by, chat_by, perks_by, admin UI) with faster isolated tests and extractability to services.

AI-written summary · about

  1. 0:00Monoliths Between Microservices
  2. 2:06Components
  3. 2:54Shopify
  4. 3:30Hanami
  5. 3:51Elixir
  6. 7:26Phase #1: Namespaces
  7. 8:13Our mission evolves
  8. 8:44Phase #2: Engines & Gems
  9. 9:00The Modular Monolith: Rails Architecture
  10. 10:12Crash Course in Engines
  11. 11:53Popular Engines
  12. 14:03Common Engines
  13. 15:44Dependencies
  14. 15:55Path/Git problem
  15. 16:37eval_gemfile
  16. 17:19Shared Gemfiles
  17. 17:47Keep Versions N'Sync
  18. 19:02transdeps: cons
  19. 19:17Syncing Versions 2.0
  20. 21:18Bundler.require
  21. 22:02BUNDLE_GEMFILE: Tips
  22. 22:25DB vs. Engines
  23. 22:48Migrations. Option #1
  24. 23:58Seeds
  25. 24:23Testing. Option #1
  26. 24:59Combustion
  27. 25:36Engines on CI
  28. 26:23ci/is-dirty
  29. 27:58Base & Behaviour
  30. 30:13Modify Models
  31. 30:33Load Hooks
  32. 31:13Example
  33. 31:50Solution
  34. 33:59Active Event Store
  35. 35:21Extreme Case
  36. 35:54Common Case
  37. 36:16Main App
  38. 39:04Why engines?
  39. 39:20Why not engines?
~/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.