Comments (2)
I presume you're asking why not use Supervisor.start_link/2, and avoid defining callbacks, right?
We could indeed simplify this module as:
defmodule Todo.SystemSupervisor do
def start_link do
import Supervisor.Spec
Supervisor.start_link(
[
supervisor(Todo.Database, ["./persist/"]),
supervisor(Todo.ServerSupervisor, []),
worker(Todo.Cache, [])
],
strategy: :one_for_one
)
end
end
And this is how I'd usually do it myself.
The main (well, the only) reason I didn't reach for that in the book is because I was worried people will be confused with this different form. It was more important for me to focus on how to organize supervision trees, than to show every aspect of the Supervisor
API.
That said, I will consider discussing this approach in the next edition.
from elixir-in-action.
Going to close as it has been a long time and I'm not sure if this is relevant anymore.
from elixir-in-action.
Related Issues (16)
- A minor type in the book (chapter 9) HOT 1
- race condition in chapter 5's registered TODO server HOT 5
- unnecessary plus one for :erlang.phash() HOT 3
- unnecessary setting in the ets example HOT 1
- Question: Default argument example explanation HOT 2
- Benchmark in section 10.1 returning strange values HOT 6
- Reference to MyProject.start without introducing it first on page 61 HOT 2
- database cannot replicated via Elixir 1.9.2 version
- Error running `:observer.start()` command (macOS) HOT 1
- [ch09] - ProcessRegistry restarts crash the App
- Ch-05 Correction in Listing 5.12 (todo_server.ex)
- SimpleRegistry links to itself? HOT 2
- update readme to reflect your on elixir 1.3 HOT 1
- Bump Elixir version numbers in `mix.exs` HOT 2
- Great book! HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elixir-in-action.