integrated circuit doubles approximately every two years. We are seeing more multi-core machines with more cores. The observation is What are we getting …. more chips, more multi-core machines.
Distributed systems Some really contrarian, disruptive ideas !! - Rails like demo - Non-rails like demo - realtime - web component for a distributed, fault tolerant system - use this platform to do things in a really contrarian way.
• message passing • no shared data • links and monitors • error handling Erlang is designed for massive concurrency Erlang is designed for massive concurrency. Erlang processes are lightweight (grow and shrink dynamically) with small memory footprint, fast to create and terminate, and the scheduling overhead is low.
Ruby on Rails Long-running requests Go Server-wide state Redis Persistable data Redis / MongoDB Background jobs Cron, Bash scripts, and Ruby Service crash recovery Upstart Server B Erlang Erlang Erlang Erlang Erlang Erlang Erlang A real world Rails app needs other software. other things: sidekiq, docker, ???
Rails Long-running requests Go Server-wide state Redis Persistable data Redis / MongoDB Background jobs Cron, Bash scripts, and Ruby Service crash recovery Upstart Erlang Erlang Erlang Erlang Erlang Erlang Erlang Server A Server B This isn’t just large-scale problems. We build distributed systems all the time. A real world Rails app needs other software. other things: sidekiq, docker, ???
no shared state • high concurrency Erlang is designed for massive concurrency. Erlang processes are — lightweight (grow and shrink dynamically) — with small memory footprint, — fast to create and terminate, and — the scheduling overhead is low.
• message passing • no shared data • links and monitors • error handling Erlang is designed for massive concurrency Erlang is designed for massive concurrency. Erlang processes are lightweight (grow and shrink dynamically) with small memory footprint, fast to create and terminate, and the scheduling overhead is low.
• release handling Erlang is designed for massive concurrency. Erlang processes are — lightweight (grow and shrink dynamically) — with small memory footprint, — fast to create and terminate, and — the scheduling overhead is low.
Erlang Request processing Ruby on Rails Erlang Long-running requests Go Erlang Server-wide state Redis Erlang Persistable data Redis / MongoDB Erlang Background jobs Cron, Bash scripts, and Ruby Erlang Service crash recovery Upstart Erlang