You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.rst
+44Lines changed: 44 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -461,6 +461,8 @@ Sample User Apps/Modules/Scripts
461
461
462
462
#. Single Service (Leaf Service)
463
463
464
+
This is the most basic unit that constitutes a service group (virtual service). It requires a URL and a dictionary of arguments as the payload:
465
+
464
466
.. code-block:: JSON
465
467
466
468
{
@@ -480,3 +482,45 @@ Sample User Apps/Modules/Scripts
480
482
+ "``(://)``": URL of the service call
481
483
+ "``(...)``": a dictionary of arguments (payload) to the service call
482
484
+ "``(.|.)``": merge the results of the previous service as pipeline arguments into the current arguments
485
+
486
+
Each service is an executable/callable unit, let's have a convention to use a rounded rectangle as its graphical symbol.
487
+
488
+
.. image:: docs/service-symbol.png
489
+
490
+
#. Grouping Services
491
+
492
+
Let's use a regular rectangle as the graphical symbol for a group scope.
493
+
494
+
.. image:: docs/grouping-symbol.png
495
+
496
+
A group cannot be empty, it must contain at least one service unit.
497
+
Each service unit can be a single service (leaf service) or a nested service group.
498
+
Services within a group can be connected in series, parallel, or series-parallel.
499
+
The two simplest connections are serial connection and parallel connection:
500
+
501
+
- Series Grouping
502
+
503
+
Every service unit in a serial group is executed/called one after another in sequence.
504
+
They need to be enclosed in a pair of square brackets ``[`` ``]`` as the value of the key "``[+++]``" in a JSON dictionary:
505
+
506
+
.. code-block:: JSON
507
+
508
+
{
509
+
"[+++]": [ {Service Unit 1}, {Service Unit ...} ]
510
+
}
511
+
512
+
If a service in a serial group accepts pipeline arguments, the results of the immediately previous sibling service will be merged into the arguments of this service.
513
+
514
+
- Parallel Grouping
515
+
516
+
All service units in a parallel group are executed/called concurrently in the same thread pool.
517
+
518
+
They need to be enclosed in a pair of square brackets ``[`` ``]`` as the value of the key "``[###]``" in a JSON dictionary:
519
+
520
+
.. code-block:: JSON
521
+
522
+
{
523
+
"[###]": [ {Service Unit 1}, {Service Unit ...} ]
524
+
}
525
+
526
+
If a service in a parallel group accepts pipeline arguments, the results of the previous service outside the group will be merged into the arguments of this service.
0 commit comments