-
Notifications
You must be signed in to change notification settings - Fork 97
Cloud Haskell 3.0 Proposal
Tim Watson edited this page Dec 2, 2018
·
13 revisions
Although I've called this iteration of Cloud Haskell 3.0, this doesn't represent an epoch for any of the libraries - indeed distributed-process is still at v0.7.4 as of December 2018. Instead we're talking about a third re-write, the first iteration being the remote package, and the second being the current live version.
See the High Level Redesign Proposal for details.
The architecture of the current (2.0) release is outlined here.
We will present several viewpoints, starting with a bottom up, dependency oriented perspective.
+----------------------------------------------------------------------------------+
| Application \ Framework Code |
+----------------------------------------------------------------------------------+
| | | | | | |
V | | | | | |
+------------------+ | | | | | |
| Cloud Haskell | | | | | | |
| Libraries | | | | | | |
| (supervisor etc) | | | | | | |
+------------------+ | | | | | |
| | | | | | |
| | | | | | |
V V | | | | |
+-------------------------+ | | +-------------+ | |
| Cloud Haskell | | | | Akka.hs | | |
| (distributed-process) | | | | (akka-hs) | | |
+-------------------------+ | | +-------------+ | |
| | | | | |
| | | | | |
V | | V V |
+-------------------------+ | | +-------------------------+ |
| Core Actor Model |__| | | Distributed Actors | |
| (control-actor) | | | (control-actor-dist) | |
+-------------------------+ | +-------------------------+ |
| ^ | | | |
| | | | V V
| | | | +--------------------------+
| | | | | Data.Distributed |
| | V V | (data-dist-serialise) |
| | +------------------------+ +--------------------------+
| | | Distributed Channels | ^ |
| | | (control-dist*-chan) |________| |
| | +------------------------+ V
| | +-------------------+
| +------------------------------+ | serialise/cborg |
| | Distribution Framework | +-------------------+
| | (haskell-distributed-node) |
| +------------------------------+
| |
V V
+-------------------------+ +------------------------------+
| Typed Channel API | | Transport Interface |
| (control-chan) | | (network-transport) |
+-------------------------+ +------------------------------+
| |
V V
+------------------+ +------------------------------+
| concurrency/STM | | Haskell/C Transport Library |
+------------------+ +------------------------------+