Finagle @ SoundCloud

2,137 views

Published on

Video: https://www.youtube.com/watch?v=ttmuN8hPQLA
From: http://finagle.github.io/finaglecon/

Published in: Technology
0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,137
On SlideShare
0
From Embeds
0
Number of Embeds
172
Actions
Shares
0
Downloads
3
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

Finagle @ SoundCloud

  1. 1. Finagle @ SoundCloud Phil Calçado SoundCloud
  2. 2. > 11 hours of audio uploaded every minute ~ 300 million people every month
  3. 3. some more micro than others
  4. 4. ~100 services ~130 engineers
  5. 5. each service has a cost we need to reduce fixed cost
  6. 6. 1) complexity cost
  7. 7. edge value-added foundation
  8. 8. edge value-added foundation api-web user-profile user-metadata playlists api-android
  9. 9. • Building in Scala should be a no-brainer • Building in other JVM languages should be easy • Building in something else should be possible
  10. 10. 2) setup cost
  11. 11. +
  12. 12. 3) RPC cost
  13. 13. the only thing these things had in common was HTTP+JSON
  14. 14. typical flow 1. Get the IDs of all tracks by an artist 2. For each ID: 2.1.Get track metadata from X 2.2.Get usage permissions from Y 2.3.Get comments from Z 3. Return list to client app
  15. 15. typical flow 1. Get the IDs of all tracks by an artist 2. For each ID: 2.1.Get track metadata from X 2.2.Get usage permissions from Y 2.3.Get comments from Z 3. Return list to client app parallel concurrent
  16. 16. what to use?
  17. 17. lots of resistance > That said, my overall critique of > [Finagle] is that I feel a lot of > their published implementations are > exceptionally complicated for the > problem domain or entail a bunch of > onerous transitive dependencies.
  18. 18. ultimately…
  19. 19. …the only three things you need to understand
  20. 20. basically
  21. 21. Actual Feature Request Validator User
  22. 22. Authentication Geo IP Rate Limiting Available Features Actual Feature User
  23. 23. Actual Feature User Filters Service }
  24. 24. we use filters a lot
  25. 25. 10 services + 42 spans + 3 levels deep: 92ms
  26. 26. REST is always good enough.
  27. 27. or is it?
  28. 28. migrating to thriftmux
  29. 29. where we don’t follow the "defaults"
  30. 30. DNS for service discovery with SRV records
  31. 31. Prometheus.io for metrics
  32. 32. twitter-server jvmkit
  33. 33. verify new versions of Finagle
  34. 34. Q&A

×