Implement Robust, Available, Fault-Tolerant Systems
Design and build complex, scalable commercial-grade systems with the Open Telecom Platform (OTP), the open source system developed by Ericsson and written in Erlang. With this hands-on book, you’ll learn how to apply OTP libraries and techniques to develop concurrent, fault-tolerant systems with no single more » point of failure.
Written by the authors of O'Reilly's Erlang Programming, including a member of OTP’s R1 release team, this guide takes you through the basics of OTP and Erlang Design Patterns, and demonstrates how the platform can be used in a wide range of industries. If you have Erlang experience, you’ll learn how to overcome key obstacles in OTP that have thwarted many other developers. « less
The Most Complete, Practical, and Actionable Guide to Microservices
Going beyond mere theory and marketing hype, Eberhard Wolff presents all the knowledge you need to capture the full benefits of this emerging paradigm. He illuminates microservice concepts, architectures, and scenarios from a technology-neutral more » standpoint, and demonstrates how to implement them with today’s leading technologies such as Docker, Java, Spring Boot, the Netflix stack, and Spring Cloud.
The author fully explains the benefits and tradeoffs associated with microservices, and guides you through the entire project lifecycle: development, testing, deployment, operations, and more. You’ll find best practices for architecting microservice-based systems, individual microservices, and nanoservices, each illuminated with pragmatic examples. The author supplements opinions based on his experience with concise essays from other experts, enriching your understanding and illuminating areas where experts disagree. Readers are challenged to experiment on their own the concepts explained in the book to gain hands-on experience.
* Discover what microservices are, and how they differ from other forms of modularization
* Modernize legacy applications and efficiently build new systems
* Drive more value from continuous delivery with microservices
* Learn how microservices differ from SOA
* Optimize the microservices project lifecycle
* Plan, visualize, manage, and evolve architecture
* Integrate and communicate among microservices
* Apply advanced architectural techniques, including CQRS and Event Sourcing
* Maximize resilience and stability
* Operate and monitor microservices in production
* Build a full implementation with Docker, Java, Spring Boot, the Netflix stack, and Spring Cloud
* Explore nanoservices with Amazon Lambda, OSGi, Java EE, Vert.x, Erlang, and Seneca
* Understand microservices’ impact on teams, technical leaders, product owners, and stakeholders
Managers will discover better ways to support microservices, and learn how adopting the method affects the entire organization. Developers will master the technical skills and concepts they need to be effective. Architects will gain a deep understanding of key issues in creating or migrating toward microservices, and exactly what it will take to transform their plans into reality. « less
Explore functional programming without the academic overtones (tell me about monads just one more time). Create concurrent applications, but get them right without all the locking and consistency headaches. Meet Elixir, a modern, functional, concurrent language built on the rock-solid Erlang VM. Elixir's more » pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. Maybe the time is right for the Next Big Thing. Maybe it's Elixir. This book is the introduction to Elixir for experienced programmers, completely updated for Elixir 1.3.
Functional programming techniques help you manage the complexities of today's real-world, concurrent systems; maximize uptime; and manage security. Enter Elixir, with its modern, Ruby-like, extendable syntax, compile and runtime evaluation, hygienic macro system, and more. But, just as importantly, Elixir brings a sense of enjoyment to parallel, functional programming. Your applications become fun to work with, and the language encourages you to experiment.
Part 1 covers the basics of writing sequential Elixir programs. We'll look at the language, the tools, and the conventions. Part 2 uses these skills to start writing concurrent code-applications that use all the cores on your machine, or all the machines on your network! And we do it both with and without OTP. Part 3 looks at the more advanced features of the language, from DSLs and code generation toextending the syntax.
This edition is fully updated with all the new features of Elixir 1.3, with a new chapter on Tooling, covering testing (both conventional and property based), code and dependency exploration, and servermonitoring.By the end of this book, you'll understand Elixir, and know how to apply it to solve your complex, modern problems.
What You Need:
You'll need a computer, a little experience with another high-level language, and a sense of adventure. No functional programming experience is needed. « less
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 more » build scalable, fault-tolerant and distributed applications through several fun examples.
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.
* 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
1. GETTING STARTED WITH ELIXIR AND OTP
3. A whirlwind tour
4. Processes 101
5. Writing server applications with GenServer
6. FAULT TOLERANCE, SUPERVISION, AND DISTRIBUTION
7. Concurrent error-handling and fault tolerance with links, monitors, and processes
8. Fault tolerance with Supervisors
9. Completing the worker-pool application
10. Distribution and load balancing
11. Distribution and fault tolerance
12. Dialyzer and type specifications
13. Property-based and concurrency testing « less
In this book, you will find descriptions of programs that you can write in Erlang. The programs will usually be short, and each one has been designed to provide practice material for a particular Erlang programming concept. These programs have not been designed to be of considerable difficulty, though more » they may ask you to stretch a bit beyond the immediate material and examples that you find in the book Introducing Erlang. « less
Software for a Concurrent World
A multi-user game, web site, cloud application, or networked database can have thousands of users all interacting at the same time. You need a powerful, industrial-strength tool to handle the really hard problems inherent in parallel, concurrent environments. You need Erlang. In this second edition of more » the bestselling Programming Erlang, you'll learn how to write parallel programs that scale effortlessly on multicore systems.
Using Erlang, you'll be surprised at how easy it becomes to deal with parallel problems, and how much faster and more efficiently your programs run. That's because Erlang uses sets of parallel processes-not a single sequential process, as found in most programming languages. « less
Working with REST and Web Sockets on Yaws
Why choose Erlang for web applications? Discover the answer hands-on by building a simple web service with this book. If you're an experienced web developer who knows basic Erlang, you'll learn how to work with REST, dynamic content, web sockets, and concurrency through several examples. In the process, more » you'll see first-hand that Erlang is ideal for building business-critical services.
Erlang was designed for fault-tolerant, non-stop telecom systems, and building applications with it requires a large set of skills. By the end of the book, you'll have the information you need to build a basic web service and get it running. « less
Erlang is an adaptable and fault tolerant functional programming language originally designed for the unique demands of the telecom industry. With Erlang/OTP's interpreter, compiler, database server, and libraries, developers are finding they can satisfy tough uptime and performance requirements in all more » kinds of other industries.
Erlang and OTP in Action teaches you the concepts of concurrent programming and the use of Erlang's message-passing model. It walks you through progressively more interesting examples, building systems in Erlang and integrating them with C/C++, Java, and .NET applications, including SOA and web architectures. This book is written for readers new to Erlang and interested in creating practical applications. « less
A Concurrent Approach to Software Development
This book is an in-depth introduction to Erlang, a programming language ideal for any situation where concurrency, fault tolerance, and fast response is essential. Erlang is gaining widespread adoption with the advent of multi - core processors and their new scalable approach to concurrency. With this more » guide you'll learn how to write complex concurrent programs in Erlang, regardless of your programming background or experience.
Written by leaders of the international Erlang community - and based on their training material - Erlang Programming focuses on the language's syntax and semantics, and explains pattern matching, proper lists, recursion, debugging, networking, and concurrency. « less
Software for a Concurrent World
Learn how to write truly concurrent programs-programs that run on dozens or even hundreds of local and remote processors. See how to write high reliability applications even in the face of network and hardware failure using the Erlang programming language.