Table of Contents

  1.  Acknowledgments
  2.  Introduction
    1. Who This Book Is For
    2. Who This Book Is Not For
    3. About This Book
    4. Online Resources
  3. 1. Mapping Our Route
    1. Lay the Foundation with Elixir
    2. Add a Web Interface with Phoenix
    3. Functional Web Development
    4. The Game of Islands
  4. Part I. Define the Functional Core in Elixir
    1. 2. Model Data and Behavior
      1. The Benefits
      2. Let’s Build It
      3. Discover the Entities and Model the Domain
      4. Transforming Data
      5. Putting the Pieces Together
      6. Wrapping Up
    2. 3. Manage State with a State Machine
      1. A Quick Look at State
      2. A Bit of History
      3. State Machines
      4. A Functional State Machine for Islands
      5. Working Through the States
      6. Wrapping Up
  5. Part II. Add OTP for Concurrency and Fault Tolerance
    1. 4. Wrap It Up in a GenServer
      1. A Look at Micro-Services
      2. OTP Solutions
      3. Getting Started with GenServer
      4. Initializing GenServer State
      5. Customizing GenServer Behavior
      6. Naming GenServer Processes
      7. Wrapping Up
    2. 5. Process Supervision for Recovery
      1. Fault Tolerance
      2. Linking Processes
      3. Introducing the Supervisor Behaviour
      4. Supervision Strategies
      5. The Child Specification
      6. A Supervisor for the Game
      7. Starting the Supervision Tree
      8. Starting and Stopping Child Processes
      9. Putting the Pieces Together
      10. Recovering State After a Crash
      11. Wrapping Up
  6. Part III. Add a Web Interface with Phoenix
    1. 6. Generate a New Web Interface with Phoenix
      1. Frameworks
      2. Applications
      3. Generate a New Phoenix Application
      4. Adding a New Dependency
      5. Call the Logic from the Interface
      6. Wrapping Up
    2. 7. Create Persistent Connections with Phoenix Channels
      1. The Beauty of Channels
      2. The Pieces That Make a Channel
      3. Let’s Build It
      4. Establish a Client Connection
      5. Converse Over a Channel
      6. Connect the Channel to the Game
      7. Phoenix Presence
      8. Authorization
      9. Wrapping Up
  7. A1. Installing System Dependencies
    1. Elixir
    2. Erlang
    3. Phoenix
    4. Node.js and NPM
  8.  Bibliography
Copyright © 2018, The Pragmatic Bookshelf.