Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Preface
Francesco: Why This Book? Steve: Why This Book? Who Should Read This Book How To Read This Book Acknowledgments Conventions Used in This Book Using Code Examples Safari® Books Online How to Contact Us
1. Introduction
Defining the Problem OTP
Erlang Tools and Libraries System Design Principles Erlang Nodes
Distribution, Infrastructure, and Multicore Summing Up What You’ll Learn in This Book
2. Introducing Erlang
Recursion and Pattern Matching Functional Influence
Fun with Anonymous Functions List Comprehensions: Generate and Test
Processes and Message Passing Fail Safe! Links and Monitors for Supervision
Links Monitors
Records Maps Macros Upgrading Modules ETS: Erlang Term Storage Distributed Erlang
Naming and Communication Node Connections and Visibility
Summing Up What’s Next?
3. Behaviors
Process Skeletons Design Patterns
Callback Modules
Extracting Generic Behaviors
Starting the Server The Client Functions The Server Loop Functions Internal to the Server
The Generic Server Message Passing: Under the Hood Summing Up What’s Next?
4. Generic Servers
Generic Servers Behavior Directives Starting a Server Message Passing
Synchronous Message Passing Asynchronous Message Passing Other Messages Unhandled Messages Synchronizing Clients
Termination Call Timeouts
Deadlocks
Generic Server Timeouts
Hibernating Behaviors
Going Global Linking Behaviors Summing Up What’s Next?
5. Controlling OTP Behaviors
The sys Module
Tracing and Logging System Messages Your Own Trace Functions Statistics, Status, and State The sys Module Recap
Spawn Options
Memory Management and Garbage Collection
Process heap Virtual binary heap Full sweep of the heap
Spawn Options to Avoid Timeouts
Summing Up What’s Next?
6. Finite State Machines
Finite State Machines the Erlang Way Coffee FSM
The Hardware Stub The Erlang Coffee Machine
Starting The events The selection state The payment state The remove state
Generic FSMs A Behavior Example
Starting the FSM Sending Events
Asynchronous events Defining states Timeouts Asynchronous events to all states Synchronous events
Termination
Summing Up Get Your Hands Dirty
The Phone Controllers Let’s Test It
What’s Next?
7. Event Handlers
Events Generic Event Managers and Handlers
Starting and Stopping Event Managers Adding Event Handlers Deleting an Event Handler Sending Synchronous and Asynchronous Events Retrieving Data Handling Errors and Invalid Return Values Swapping Event Handlers Wrapping It All Up
The SASL Alarm Handler Summing Up What’s Next?
8. Supervisors
Supervision Trees OTP Supervisors
The Supervisor Behavior Starting the Supervisor The Supervisor Specification
The restart specification The child specification
Dynamic Children
Simple one for one Gluing it all together
Non-OTP-Compliant Processes
Supervisor bridges Adding non-OTP-compliant processes
Scalability and Short-Lived Processes Synchronous Starts for Determinism Testing Your Supervision Strategy
How Does This Compare? Summing Up What’s Next?
9. Applications
How Applications Run The Application Structure The Callback Module
Starting and Stopping Applications
Application Resource Files
The Base Station Controller Application File
Starting an Application Environment Variables Application Types and Termination Strategies Distributed Applications Start Phases Included Applications
Start Phases in Included Applications
Combining Supervisors and Applications The SASL Application
Progress Reports Error Reports Crash Reports Supervisor Reports
Summing Up What’s Next?
10. Special Processes and Your Own Behaviors
Special Processes
The Mutex Starting Special Processes
Basic template for starting a special process Asynchronously starting a special process
The Mutex States Handling Exits System Messages Trace and Log Events Putting It Together Dynamic Modules and Hibernating
Your Own Behaviors
Rules for Creating Behaviors An Example Handling TCP Streams
Summing Up What’s Next?
11. System Principles and Release Handling
System Principles
Release Directory Structure Release Resource Files Creating a Release Creating the Boot File
Script files The make_script parameters
Creating a Release Package Start Scripts and Configuring on the Target Arguments and Flags
Heart The Erlang loader
The init Module
Rebar3
Generating a Rebar3 Release Project Creating a Release with Rebar3 Rebar3 Releases with Project Dependencies
Wrapping Up What’s Next?
12. Release Upgrades
Software Upgrades
The First Version of the Coffee FSM Adding a State
Creating a Release Upgrade
The Code to Upgrade Application Upgrade Files High-Level Instructions Release Upgrade Files Low-Level Instructions Installing an Upgrade The Release Handler Upgrading Environment Variables
Upgrading Special Processes Upgrading in Distributed Environments Upgrading the Emulator and Core Applications Upgrades with Rebar3 Summing Up What’s Next?
13. Distributed Architectures
Node Types and Families Networking
Distributed Erlang
Riak Core Scalable Distributed Erlang
Sockets and SSL Service Orientation and Microservices Peer to Peer
Interfaces Summing Up What’s Next?
14. Systems That Never Stop
Availability
Fault Tolerance Resilience Reliability
At most once, exactly once, and at least once
Sharing Data
Share nothing Share something Share everything
Tradeoffs Between Consistency and Availability
Summing Up What’s Next?
15. Scaling Out
Horizontal and Vertical Scaling Capacity Planning
Capacity Testing
Generating load
Balancing Your System Finding Bottlenecks
Synchronous versus asynchronous calls
System Blueprints
Load Regulation and Backpressure Summing Up What’s Next?
16. Monitoring and Preemptive Support
Monitoring
Logs Metrics Alarms
Preemptive Support Summing Up What’s Next?
Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion