Skip to content

Instantly share code, notes, and snippets.

@amirmc
amirmc / gist:0e87915792a1825da58d31f2d8ea5bcf
Last active January 24, 2017 21:45 — forked from yomimono/gist:e6c90105ac8f3f80cecd01761dd644d9
MirageOS 3 description of changes.
Less Code, Less Magic, More Results
## Major Changes
* The solo5 backends `ukvm` and `virtio` (see [https://mirage.io/blog/introducing-solo5]) are now available in the mainline `mirage` package
* The `V1` and `V1_LWT` modules, which contained module type definitions agreed upon by implementations used in `mirage`, have been renamed to `Mirage_types` and `Mirage_types_lwt`. The module type definitions themselves are no longer contained in this repository, but have been moved to their own independently-versioned repositories and are merely referenced from `Mirage_types` and `Mirage_types_lwt`.
* Across the universe of module type definitions, errors in computation are now signalled by a `result` type and a set of polymorphic variants representing common errors that might occur. Individual implementations may extend this set, and users can always count on the provided module to provide a pretty-printer for these errors.
* The `CLOCK` module type has been replaced with `PCLOCK` and `MCLOCK`, which represent a

Internet Scale Services Checklist

A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."

Basic tenets

  • Does the design expect failures to happen regularly and handle them gracefully?
  • Have we kept things as simple as possible?