This commit is contained in:
Tony Garnock-Jones 2022-02-11 11:01:57 +01:00
parent bcf74324db
commit 49c97e4997
2 changed files with 15 additions and 17 deletions

View File

@ -26,33 +26,29 @@ reactive dataflow.
*[conversational state](./glossary.md#conversational-state)* *[conversational state](./glossary.md#conversational-state)*
expressed as *[assertions](./glossary.md#assertion)*. expressed as *[assertions](./glossary.md#assertion)*.
2. **Ocaps for security and privacy.** The ocap model provides the 2. **Ocaps for security and privacy.** The ocap model provides the fundamental building blocks
fundamental building blocks for secure composition of programs in for secure composition of programs in the system. Synit extends the core ocap model with
the system. Synit extends the core ocap model with [Macaroon](./glossary.md#macaroon)-inspired *[attenuation](./glossary.md#attenuation)* of
[Macaroon](./glossary.md#macaroon)-inspired *attenuation* of capabilities, for both limiting visibility of state and constraining access to behaviour.
capabilities, for both limiting visibility of state and
constraining access to behaviour.
3. **Reactivity and homeostasis.** Programs publish relevant aspects 3. **Reactivity and homeostasis.** Programs publish relevant aspects of their internal state
of their internal state to peers (usually by placing to peers (usually by placing [assertions](./glossary.md#assertion) in a dataspace). Peers
[assertions](./glossary.md#assertion) in a dataspace). Peers [subscribe](./glossary.md#observe) to those assertions, reacting to changes in state to
subscribe to those assertions, reacting to changes in state to
preserve overall system equilibrium. preserve overall system equilibrium.
3. **Layered architecture.** Programs may or may not be structured 3. **Heterogeneous; "open".** Different programming languages and styles interoperate freely.
internally using SAM principles: the system as a whole is where Programs may or may not be structured internally using SAM principles: the system as a
the architectural principles are applied. However, it often makes whole is where the architectural principles are applied. However, it often makes good sense
good sense to use SAM principles *within* a given Synit program as to use SAM principles *within* a given Synit program as well as *between* programs.
well as *between* programs.
4. **Language-neutral.** Where possible, programs interoperate via a 4. **Language-neutral.** Where possible, programs interoperate via a
simple [protocol](./protocol.md) across transports like TCP/IP, simple [protocol](./protocol.md) across transports like TCP/IP,
WebSockets, and Unix sockets and pipes. Otherwise, they WebSockets, and Unix sockets and pipes. Otherwise, they
interoperate using traditional Unix techniques. The concrete interoperate using traditional Unix techniques. The concrete
syntax for the messages and assertions exchanged among programs is syntax for the messages and assertions exchanged among programs is
the [Preserves](./preserves.md) data language. the [Preserves](./guide/preserves.md) data language.
5. **Strongly typed.** Preserves [Schemas](./preserves.md#schemas) 5. **Strongly typed.** Preserves [Schemas](./guide/preserves.md#schemas)
describe the data exchanged among programs. Schemas compile to describe the data exchanged among programs. Schemas compile to
type definitions in various programming languages, helping give an type definitions in various programming languages, helping give an
ergonomic development experience as well as ensuring safety at ergonomic development experience as well as ensuring safety at

View File

@ -2,6 +2,7 @@
## Actor ## Actor
## Assertion ## Assertion
## Attenuation
## Bus Scripting Language ## Bus Scripting Language
## Capability ## Capability
## Compositional ## Compositional
@ -12,6 +13,7 @@
## Macaroon ## Macaroon
## Message ## Message
## Object Capability Model ## Object Capability Model
## Observe
## Preserves ## Preserves
## S6 ## S6
## Schema ## Schema