Go to file
2020-10-16 12:47:46 +03:00
.circleci add hack with get_current_id (#6) 2020-10-08 14:27:59 +03:00
artifacts Merge previous data with current (#10) 2020-10-16 12:47:46 +03:00
crates Call evidence (#9) 2020-10-15 17:31:56 +03:00
stepper Merge previous data with current (#10) 2020-10-16 12:47:46 +03:00
.gitignore Introduce Seq, Par, Fold instructions (#5) 2020-10-08 12:43:23 +03:00
Cargo.lock Merge previous data with current (#10) 2020-10-16 12:47:46 +03:00
Cargo.toml Introduce Seq, Par, Fold instructions (#5) 2020-10-08 12:43:23 +03:00
Config.toml Introduce Seq, Par, Fold instructions (#5) 2020-10-08 12:43:23 +03:00
LICENSE Initial commit 2020-09-18 14:05:43 +03:00
README.md Introduce Seq, Par, Fold instructions (#5) 2020-10-08 12:43:23 +03:00

Aquamarine

Aquamarine is a distributed choreography language & platform

AIR

The current version supports the following instructions:

  • call
  • par
  • seq
  • fold
  • next
  • null

Examples

(seq (
    (call (%current_peer_id1% (local_service_id local_fn_name) () result_name_1))
    (call (remote_peer_id (service_id fn_name) () result_name_2))
)),

This instruction sequence contains two call instructions in the sequential order:

  1. call a function with local_fn_name name of a local service with local_service_id id and bind result to result_name
  2. call a remote peer with remote_peer_id id
(fold (Iterable i
    (seq (
        (call (%current_peer_id% (local_service_id local_fn_name) (i) acc[]))
        (next i)
    )
)))

This example is an analog of left fold. It iterates over Iterable and on each iteration calls local_service_id and puts result to acc.