Your SlideShare is downloading. ×
Erlang: Bult for concurrent, distributed systems
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Erlang: Bult for concurrent, distributed systems

1,436

Published on

Quick overview of Erlang presented to the Vancouver Graph Database meetup on July 27, 2011.

Quick overview of Erlang presented to the Vancouver Graph Database meetup on July 27, 2011.

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,436
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Erlang Built for concurrent, distributed systems July 27, 2011 Ken Pratt http://kenpratt.net/Wednesday, July 27, 2011
  • 2. The philosophy "Erlang was designed for writing concurrent programs that "run forever"" - Joe ArmstrongWednesday, July 27, 2011
  • 3. The philosophy Simple language Ultra-lightweight concurrency No shared state Local & remote communication via messagingWednesday, July 27, 2011
  • 4. The language Functional Pattern matching No variables! (well, they don’t vary, anyway) Compiled to bytecode, runs on VMWednesday, July 27, 2011
  • 5. The VM Processes Pre-emptive scheduler Memory manager Mesh networkingWednesday, July 27, 2011
  • 6. Erlang == distributed OS? Erlang is not so much a programming language as it is a distributed Operating System. It’s like an ant colony with thousands of ants performing all sorts of different tasks. Erlang is to threads what garbage collection is to manual memory management -- it brings concurrent programming into the 21st century.Wednesday, July 27, 2011
  • 7. Local architecture = light-weight process with a built-in mailboxWednesday, July 27, 2011
  • 8. Distributed architecture = light-weight process with a built-in mailboxWednesday, July 27, 2011
  • 9. Interesting architectures Having thousands of lightweight “threads” really opens up the architecture options. The main example application on the “Erlang and OTP in Action” book is a cache using one process per cache entry!Wednesday, July 27, 2011
  • 10. Standard library Common patterns do all the concurrency heavy lifting for you (gen_server, rpc) Supervision trees Hot code deploymentWednesday, July 27, 2011
  • 11. In production Chat backend SimpleDB Orchestration of Ruby services Routing mesh, logging systemWednesday, July 27, 2011
  • 12. Erlang + Neo4j Erlang has graphs: http://www.erlang.org/doc/man/ digraph.html BUT, it’s no Graph DBWednesday, July 27, 2011
  • 13. Erlang + Neo4j Nerlo: http://github.com/nerlo/nerlo (Jinterface-based) Cali: http://github.com/dmitriid/cali (Jinterface-based) Both look pretty dead-in-the-water (no commits on either project in ~1 yr) BUT, Jinterface works well, so does Mule ESB. So in the worst case you could write your Neo4j adapters in the JVM and bridge to Erlang with a biz-logic-level API.Wednesday, July 27, 2011
  • 14. ResourcesWednesday, July 27, 2011

×