AstonJ
June 16, 2017, 12:26am
1
By Francesco Cesarini, Steve Vinoski
If you need to build a scalable, fault tolerant system with requirements for high availability, discover why the Erlang/OTP platform stands out for the breadth, depth, and consistency of its features. This hands-on guide demonstrates how to use the Erlang programming language and its OTP framework of reusable libraries, tools, and design principles to develop complex commercial-grade systems that simply cannot fail.
In the first part of the book, you’ll learn how to design and implement process behaviors and supervision trees with Erlang/OTP, and bundle them into standalone nodes. The second part addresses reliability, scalability, and high availability in your overall system design. If you’re familiar with Erlang, this book will help you understand the design choices and trade-offs necessary to keep your system running.
Explore OTP’s building blocks: the Erlang language, tools and libraries collection, and its abstract principles and design rules
Dive into the fundamentals of OTP reusable frameworks: the Erlang process structures OTP uses for behaviors
Understand how OTP behaviors support client-server structures, finite state machine patterns, event handling, and runtime/code integration
Write your own behaviors and special processes
Use OTP’s tools, techniques, and architectures to handle deployment, monitoring, and operations
If you need to build a scalable, fault tolerant system with requirements for high availability, discover why the Erlang/OTP platform stands out for the breadth, depth, and consistency of its … - Selection from Designing for Scalability with...
Google Play (free sample)
ebooks.com
4 Likes
what are your views about this book?
I do highly recommend it Just a personal opinion.
Okay my purpose of reading this is: How I can spread process over multiple machines for an Elixir application. How to to handle a large scale application on multiple nodes.
Will It help me in this regards?
Chapter 13 is on Distributed Erlang.
If distribution is your only goal, then it might not fit your need.
But it does explain in great details OTP, from the Erlang side.
Actually, We have a large scale application, in Elixir Phoenix. and we are growing day by day with more cameras and request, workers etc. We want to scale that application on multiple machines, and I want to read the concepts and possibly an implementation of that. You know what I mean. can you refer something good?
I would probably look at swarn , by @bitwalker
But I don’t know any documentation that explains in detail distribution. Specifically how to deal with network split…
1 Like
That comment can be helpfull if you really need or not
The recommendation is to still deploy those nodes completely independent from each other and have the load balancing work completely independent, as you would with any other technology. The reason to use Distributed Erlang is only if you are relying on a particular library that builds on top of it, such as Phoenix.PubSub with channels and Phoenix presence, and those libraries will already be designed to handle node failures and what not.