Designing for Scalability with Erlang OTP

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.

Designing for Scalability with Erlang OTP

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

Designing for Scalability with Erlang OTP

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, ...

Designing for Scalability with Erlang OTP

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

Fluent Python

I was fortunate to be in the audience for Francesco Cesarini's outstanding workshop on the architecture of reliable distributed systems at OSCON 2016: “Designing and architecting for scalability with Erlang/OTP” (video at the O'Reilly ...

Fluent Python

Don't waste time bending Python to fit patterns you've learned in other languages. Python's simplicity lets you become productive quickly, but often this means you aren't using everything the language has to offer. With the updated edition of this hands-on guide, you'll learn how to write effective, modern Python 3 code by leveraging its best ideas. Discover and apply idiomatic Python 3 features beyond your past experience. Author Luciano Ramalho guides you through Python's core language features and libraries and teaches you how to make your code shorter, faster, and more readable. Complete with major updates throughout, this new edition features five parts that work as five short books within the book: Data structures: Sequences, dicts, sets, Unicode, and data classes Functions as objects: First-class functions, related design patterns, and type hints in function declarations Object-oriented idioms: Composition, inheritance, mixins, interfaces, operator overloading, protocols, and more static types Control flow: Context managers, generators, coroutines, async/await, and thread/process pools Metaprogramming: Properties, attribute descriptors, class decorators, and new class metaprogramming hooks that replace or simplify metaclasses

Introducing Erlang

I'm not an Erlang expert hoping to create more Erlang experts to get a lot of work done. ... More recently, Designing for Scalability with Erlang/OTP (O'Reilly), by Francesco Cesarini and Steve Vinoski, focuses squarely on building ...

Introducing Erlang

If you’re new to Erlang, its functional style can seem difficult, but with help from this hands-on introduction, you’ll scale the learning curve and discover how enjoyable, powerful, and fun this language can be. In this updated second edition, author Simon St.Laurent shows you how to write simple Erlang programs by teaching you one skill at a time. You’ll learn about pattern matching, recursion, message passing, process-oriented programming, and establishing pathways for data rather than telling it where to go. By the end of your journey, you’ll understand why Erlang is ideal for concurrency and resilience. Get cozy with Erlang’s shell, its command line interface Define functions, using the fun tool, to represent repeated calculations Discover atoms, pattern matching, and guards: the foundations of your program structure Delve into the heart of Erlang processing with recursion, strings, lists, and higher-order functions Create processes, send messages among them, and apply pattern matching to incoming messages Store and manipulate structured data with Erlang Term Storage and the Mnesia database Learn about Open Telecom Platform, Erlang’s open source libraries and tools

The Little Elixir OTP Guidebook

by Martin Logan, Eric Merritt, and Richard Carlsson (Manning Publications, 2010); Learn You Some Erlang for Great Good! by Fred Hébert (No Starch Press, 2013); and Designing for Scalability with Erlang/OTP by Francesco Cesarini and ...

The Little Elixir   OTP Guidebook

Summary The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of the Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Elixir is an elegant programming language that combines the expressiveness of Ruby with the concurrency and fault-tolerance of Erlang. It makes full use of Erlang's BEAM VM and OTP library, so you get two decades' worth of maturity and reliability right out of the gate. Elixir's support for functional programming makes it perfect for modern event-driven applications. About the Book The Little Elixir & OTP Guidebook gets you started writing applications with Elixir and OTP. You'll begin with the immediately comfortable Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into several lighthearted examples that teach you to take advantage of the incredible functionality built into the OTP library. What's Inside Covers Elixir 1.2 and 1.3 Introduction to functional concurrency with actors Experience the awesome power of Erlang and OTP About the Reader Written for readers comfortable with a standard programming language like Ruby, Java, or Python. FP experience is helpful but not required. About the Author Benjamin Tan Wei Hao is a software engineer at Pivotal Labs, Singapore. He is also an author, a speaker, and an early adopter of Elixir. Table of Contents GETTING STARTED WITH ELIXIR AND OTP Introduction A whirlwind tour Processes 101 Writing server applications with GenServer FAULT TOLERANCE, SUPERVISION, AND DISTRIBUTION Concurrent error-handling and fault tolerance with links, monitors, and processes Fault tolerance with Supervisors Completing the worker-pool application Distribution and load balancing Distribution and fault tolerance Dialyzer and type specifications Property-based and concurrency testing

Erlang and Elixir for Imperative Programmers

Pragmatic Programmers, 2015. Pereira, Paulo A. Elixir Cookbook. Packt Publishing, 2015. Thomas, Dave. Programming Elixir 1.2. Pragmatic Programmers, 2016. Vinoski, Steve and Francesco Cesarini. Designing for Scalability with Erlang/OTP.

Erlang and Elixir for Imperative Programmers

Learn and understand Erlang and Elixir and develop a working knowledge of the concepts of functional programming that underpin them. This book takes the author’s experience of taking on a project that required functional programming and real-time systems, breaks it down, and organizes it. You will get the necessary knowledge about differences to the languages you know, where to start, and where to go next. Have you been told by your customer or manager that they heard good things about Erlang, you should use it for the next project? Never had to deal with functional programming or real-time systems? In 2014, the author, Wolfgang Loder, developed a repository for digital assets that had to deliver those assets in binary form quickly and reliably, being able to deal with at least hundreds of requests per second. Since he could decide the architecture and software stack of the solution, he immediately thought of Erlang and its libraries and started to evaluate this option. It was not long after that he discovered Elixir, which sits on top of the Erlang virtual machine and has features more palatable for non-functional programmers, although it is a functional programming language itself. Erlang and Elixir for Imperative Programmers gives you a basis for deciding whether the effort is viable for your next project. This book is partly a tale of the author's own experience and partly a description of the bigger and more subtle differences between Erlang/Elixir and languages such as C++, Java, and C#. What You'll Learn Discover functional programming, Erlang, and Elixir Work on service design and service features Set up your environment: deployment, development, and production Implement the service including public interface, asset processing, and deployment Use the patterns and concepts found in Erlang including type creation concepts and code structuring. Who This Book Is For Experienced and savvy programmers, coders, and developers new to Erlang and Elixir.

Software Engineering Perspectives in Intelligent Systems

Cesarini, F., Vinoski, S.: Designing for Scalability with Erlang/OTP: Implement Robust, Fault-Tolerant Systems, 1st edn. O'Reilly Media Inc., Sebastopol (2016) 5. Erl, T.: Service-Oriented Architecture: Concepts, Technology, and Design.

Software Engineering Perspectives in Intelligent Systems

This book constitutes the refereed proceedings of the 4th Computational Methods in Systems and Software 2020 (CoMeSySo 2020) proceedings. Software engineering, computer science and artificial intelligence are crucial topics for the research within an intelligent systems problem domain. The CoMeSySo 2020 conference is breaking the barriers, being held online. CoMeSySo 2020 intends to provide an international forum for the discussion of the latest high-quality research results.

Science and Technologies for Smart Cities

Cesarini, F., Vinoski, S.: Designing for Scalability with Erlang/OTP: Implement Robust, 1st edn. Fault-Tolerant Systems. O'Reilly Media Inc., Sebastopol (2016) 3. Cheng, C., Lu, R., Petzoldt, A., Takagi, T.: Securing the internet of ...

Science and Technologies for Smart Cities

This book constitutes the refereed proceedings of the 6th Annual Smart City 360° Summit. Due to COVID-19 pandemic the conference was held virtually. The volume combines selected papers of seven conferences, namely AISCOVID 2020 - International Conference on AI-assisted Solutions for COVID-19 and Biomedical Applications in Smart-Cities; EdgeIoT 2020 - International Conference on Intelligent Edge Processing in the IoT Era; IC4S 2020 - International Conference on Cognitive Computing and Cyber Physical Systems; CiCom 2020 - International Conference on Computational Intelligence and Communications; S-Cube 2020 - International Conference on Sensor Systems and Software; SmartGov 2020 - International Conference on Smart Governance for Sustainable Smart Cities; and finnally, the Urb-IOT 2020 -International Conference on IoT in Urban Space.

Trends in Functional Programming

... Lundin, K., Virding, R.: The design of scalable distributed (SD) Erlang. In: Draft Proceedings of IFL 2012, pp. 461–476. Oxford University (2012) 38. Aronis, S., et al.: BenchErl: A Scalability Benchmark Suite for Erlang/OTP (2012), ...

Trends in Functional Programming

This book constitutes the thoroughly refereed revised selected papers of the 13th International Symposium on Trends in Functional Programming, TFP 2012, held in St Andrews, Scotland, UK in June 2012. The 18 revised full papers included in this volume were carefully and selected from 49 submissions and are complemented with an invited paper. They cover various aspects of trends in functional programming.

Design for the Unexpected

In 2011, the team adopted Erlang/OTP (cf. www.erlang.org). This solved the scalability issue. Model development in Erlang enjoys the speed-up brought by a functional/actor language with pattern matching (one or two orders of magnitude ...

Design for the Unexpected

Design for the Unexpected: From Holonic Manufacturing Systems Towards a Humane Mechatronics Society presents new, even revolutionary, ideas to managing production and production systems which may fundamentally shift the paradigm of manufacturing systems design. It provides guidelines for the design of complex systems that can deal with unexpected disturbances and presents a decentralized control methodology that goes far beyond the traditional hierarchical control approach that currently prevails. The benefits are illustrated by a variety of examples and case studies from different fields, with the book's well-established authors presenting Holonic Manufacturing Systems (HMS) as the framework for the ‘factory-of-the-future’, and suggesting that the application of biologically inspired control paradigms can control complex manufacturing systems, and that there are far wider applications for these systems than pure manufacturing. In addition, the book explores how this multi-agent control framework can be extended to other fields such as traffic, transport, services, and health care. Provides a practical control system architecture that can be applied to a wide variety of systems in manufacturing, transportation, logistics, and robotics Contains a wide range of case studies from different engineering disciplines Provides a decentralized control methodology that goes beyond the traditional hierarchical control approach that currently prevails A must-read resource for researchers and professionals alike

Real Time Phoenix

These properties help to reduce the complexity of code and, by proxy, help to improve maintenance scalability over time. Elixir builds on top of Erlang/OTP to provide an excellent foundation for soft real-time applications.

Real Time Phoenix

Give users the real-time experience they expect, by using Elixir and Phoenix Channels to build applications that instantly react to changes and reflect the application's true state. Learn how Elixir and Phoenix make it easy and enjoyable to create real-time applications that scale to a large number of users. Apply system design and development best practices to create applications that are easy to maintain. Gain confidence by learning how to break your applications before your users do. Deploy applications with minimized resource use and maximized performance. Real-time applications come with real challenges - persistent connections, multi-server deployment, and strict performance requirements are just a few. Don't try to solve these challenges by yourself - use a framework that handles them for you. Elixir and Phoenix Channels provide a solid foundation on which to build stable and scalable real-time applications. Build applications that thrive for years to come with the best-practices found in this book. Understand the magic of real-time communication by inspecting the WebSocket protocol in action. Avoid performance pitfalls early in the development lifecycle with a catalog of common problems and their solutions. Leverage GenStage to build a data pipeline that improves scalability. Break your application before your users do and confidently deploy them. Build a real-world project using solid application design and testing practices that help make future changes a breeze. Create distributed apps that can scale to many users with tools like Phoenix Tracker. Deploy and monitor your application with confidence and reduce outages. Deliver an exceptional real-time experience to your users, with easy maintenance, reduced operational costs, and maximized performance, using Elixir and Phoenix Channels. What You Need: You'll need Elixir 1.9+ and Erlang/OTP 22+ installed on a Mac OS X, Linux, or Windows machine.

Erlang and OTP in Action

Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Erlang and OTP in Action

Concurrent programming has become a required discipline for all programmers. Multi-core processors and the increasing demand for maximum performance and scalability in mission-critical applications have renewed interest in functional languages like Erlang that are designed to handle concurrent programming. Erlang, and the OTP platform, make it possible to deliver more robust applications that satisfy rigorous uptime and performance requirements. Erlang and OTP in Action teaches you to apply Erlang's message passing model for concurrent programming--a completely different way of tackling the problem of parallel programming from the more common multi-threaded approach. This book walks you through the practical considerations and steps of building systems in Erlang and integrating them with real-world C/C++, Java, and .NET applications. Unlike other books on the market, Erlang and OTP in Action offers a comprehensive view of how concurrency relates to SOA and web technologies. This hands-on guide is perfect for readers just learning Erlang or for those who want to apply their theoretical knowledge of this powerful language. You'll delve into the Erlang language and OTP runtime by building several progressively more interesting real-world distributed applications. Once you are competent in the fundamentals of Erlang, the book takes you on a deep dive into the process of designing complex software systems in Erlang. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Computer Aided Systems Theory EUROCAST 2003

The gateway was designed using modern software engineering tools (such as unified modeling language, design patterns, etc.), implemented using a functional language (Erlang/OTP) and supports the typical features of other common payment ...

Computer Aided Systems Theory   EUROCAST 2003

The concept of CAST as Computer Aided Systems Theory, was introduced by F. Pichler of Linz in the late 80’s to include those computer theoretical and practical developments as tools to solve problems in System Science. It was considered as the third component (the other two being CAD and CAM) that will provide for a complete picture of the path from Computer and Systems Sciences to practical developments in Science and Engineering. The University of Linz organized the ?rst CAST workshop in April 1988, which demonstrated the acceptance of the concepts by the scienti?c and technical community. Next, the University of Las Palmas de Gran Canaria joined the University of Linz to organize the ?rst international meeting on CAST, (Las Palmas February 1989), under the name EUROCAST’89, that was a very successful gathering of systems theorists, computer scientists and engineers from most of European countries, North America and Japan. ItwasagreedthatEUROCASTinternationalconferenceswouldbeorganized every two years. Thus, the following EUROCAST meetings took place in Krems (1991), Las Palmas (1993), Innsbruck (1995), Las Palmas (1997), Vienna (1999) and Las Palmas(2001), in addition to an extra-European CAST Conference in Ottawain1994.SelectedpapersfromthosemeetingswerepublishedbySpringer- Verlag Lecture Notes in Computer Science nos. 410, 585, 763, 1030, 1333, 1728 and 2178 and in several special issues of Cybernetics and Systems: an lnternat- nal Journal. EUROCAST and CAST meetings are de?nitely consolidated, as it is demonstrated by the number and quality of the contributions over the years.

Service Orientation in Holonic and Multi agent Manufacturing

Erlang is a functional programming language developed for programming concurrent, scalable and distributed systems ... (OTP)—a set of robust Erlang libraries and design principles providing middle-ware to develop Erlang systems [10].

Service Orientation in Holonic and Multi agent Manufacturing

This volume gathers the peer reviewed papers presented at the 4th edition of the International Workshop “Service Orientation in Holonic and Multi-agent Manufacturing – SOHOMA’14” organized and hosted on November 5-6, 2014 by the University of Lorraine, France in collaboration with the CIMR Research Centre of the University Politehnica of Bucharest and the TEMPO Laboratory of the University of Valenciennes and Hainaut-Cambrésis. The book is structured in six parts, each one covering a specific research line which represents a trend in future manufacturing: (1) Holonic and Agent-based Industrial Automation Systems; (2) Service-oriented Management and Control of Manufacturing Systems; (3) Distributed Modelling for Safety and Security in Industrial Systems; (4) Complexity, Big Data and Virtualization in Computing-oriented Manufacturing; (5) Adaptive, Bio-inspired and Self-organizing Multi-Agent Systems for Manufacturing and (6) Physical Internet Simulation, Modelling and Control. There is a clear orientation of the SOHOMA’14 workshop towards complexity, which is a common view of all six parts. There is need for a framework allowing the development of manufacturing cyber physical systems including capabilities for complex event processing and data analytics which are expected to move the manufacturing domain closer towards cloud manufacturing within contextual enterprises. Recent advances in sensor, communication and intelligent computing technologies made possible the Internet connectivity of the physical world: the Physical Internet, where not only documents and images are created, shared, or modified in the cyberspace, but also the physical resources and products interact over Internet and make decisions based on shared communication.

Intelligent Information and Database Systems

The main goals for design of the architecture was modularity and heterogeneity, in order to satisfy the performance, scalability, distributability and reliability requirements. All modules of the system were developed using Erlang/OTP, ...

Intelligent Information and Database Systems

The two-volume set LNAI 10751 and 10752 constitutes the refereed proceedings of the 10th Asian Conference on Intelligent Information and Database Systems, ACIIDS 2018, held in Dong Hoi City, Vietnam, in March 2018. The total of 133 full papers accepted for publication in these proceedings was carefully reviewed and selected from 423 submissions. They were organized in topical sections named: Knowledge Engineering and Semantic Web; Social Networks and Recommender Systems; Text Processing and Information Retrieval; Machine Learning and Data Mining; Decision Support and Control Systems; Computer Vision Techniques; Advanced Data Mining Techniques and Applications; Multiple Model Approach to Machine Learning; Sensor Networks and Internet of Things; Intelligent Information Systems; Data Structures Modeling for Knowledge Representation; Modeling, Storing, and Querying of Graph Data; Data Science and Computational Intelligence; Design Thinking Based R&D, Development Technique, and Project Based Learning; Intelligent and Contextual Systems; Intelligent Systems and Algorithms in Information Sciences; Intelligent Applications of Internet of Thing and Data Analysis Technologies; Intelligent Systems and Methods in Biomedicine; Intelligent Biomarkers of Neurodegenerative Processes in Brain; Analysis of Image, Video and Motion Data in Life Sciences; Computational Imaging and Vision; Computer Vision and Robotics; Intelligent Computer Vision Systems and Applications; Intelligent Systems for Optimization of Logistics and Industrial Applications.

ACM SIGPLAN Erlang Workshop

The server based architecture of instant messaging provides location independence and scalability and makes it possible to offer remote access facilities as ... We have also shown how this design can be implemented using Erlang / OTP .

ACM SIGPLAN Erlang Workshop


Building Scalable Applications With Erlang

This book quickly brings experienced object-oriented programmers up to speed with both Erlang and the principles of functional programming.

Building Scalable Applications With Erlang

Erlang is emerging as a leading language for concurrent programming in mission-critical enterprise environments where applications must deliver exceptional reliability, availability, and scalability. It's already used by organizations ranging from Facebook to Amazon, and many others are adopting or considering it. As a functional language, however, Erlang is radically different from conventional object-oriented languages like C++ and Java. This book quickly brings experienced object-oriented programmers up to speed with both Erlang and the principles of functional programming. Jerry Jackson thoroughly explains Erlang's key concepts, principles, and features, bridging the conceptual gaps that often frustrate object developers. Next, he shows how to use Erlang to build massively-scalable real-world systems with up to "nine nines" availability: that is, up to 99.9999999% uptime. Coverage includes: What Erlang is, and why it offers so much potentia What it means to be "concurrency-oriented, and how to design concurrency-oriented applications How to use functional features, pattern matching, and Erlang's standard libraries How to manage concurrency and mutable state, and work with the Mnesia database How to write distributed software with Erlang How to use powerful additional capabilities built into Erlang's Open Telecom Platform (OTP) How to interact with Java, C, and other languages How to use Erlang's bundled web server and debugger, and much more

Ericsson Review

The main design goal for the middleware and operating systems ) , to be framework has been to use standard ... hot - code replacement - the software middleware to a scalable high0 EM H.248 BICC Ronja DPE APM Erlang / OTP Solaris.

Ericsson Review


Elixir in Action

About the Book Elixir in Action, Second Edition teaches you how to build production-quality distributed applications using the Elixir programming language.

Elixir in Action

"When you’re building mission-critical software, fault tolerance matters. The Elixir programming language delivers fast, reliable applications, whether you’re building a large-scale distributed system, a set of backend services, or a simple web app. And Elixir’s elegant syntax and functional programming mindset make your software easy to write, read, and maintain. Elixir in Action, Second Edition teaches you how to build production-quality distributed applications using the Elixir programming language. Author Saša Juric introduces this powerful language using examples that highlight the benefits of Elixir’s functional and concurrent programming. You’ll discover how the OTP framework can radically reduce tedious low-level coding tasks. You’ll also explore practical approaches to concurrency as you learn to distribute a production system over multiple machines."--Résumé de l'éditeur.

Mastering Rabbitmq

Master the art of developing message-based applications with RabbitMQAbout This Book* Learn how to administer, manage, and extend your own message broker, RabbitMQ* Develop clients to make a message bridge between your software systems ...

Mastering Rabbitmq