ch38_reducers

show:
mock turns=0 · messages=0
live turns=0 · messages=0
scenario no_reducer_means_replace
scenario no_reducer_means_replace · 2.5ms
node first · 0.0ms
wrote {"note": "from first"}
node second · 0.0ms
wrote {"note": "from second"}
second_write_is_all_that_survives {"final_note": "from second"}
scenario no_reducer_means_replace · 2.9ms
node first · 0.0ms
wrote {"note": "from first"}
node second · 0.0ms
wrote {"note": "from second"}
second_write_is_all_that_survives {"final_note": "from second"}
scenario add_messages_is_the_one_field_that_appends
scenario add_messages_is_the_one_field_that_appends · 3.8ms
seed_passed_to_invoke {"message": "go", "note": "initial"}
node turn_one · 0.0ms
wrote {"message": "turn one reply", "note": "from turn one"}
node turn_two · 0.0ms
wrote {"message": "turn two reply", "note": "from turn two"}
one_field_accumulates_the_other_replaces {"message_count": 3, "messages": ["go", "turn one reply", "turn two reply"], "final_note": "from turn two"}
scenario add_messages_is_the_one_field_that_appends · 3.7ms
seed_passed_to_invoke {"message": "go", "note": "initial"}
node turn_one · 0.0ms
wrote {"message": "turn one reply", "note": "from turn one"}
node turn_two · 0.0ms
wrote {"message": "turn two reply", "note": "from turn two"}
one_field_accumulates_the_other_replaces {"message_count": 3, "messages": ["go", "turn one reply", "turn two reply"], "final_note": "from turn two"}
scenario a_custom_reducer_is_just_a_function
scenario a_custom_reducer_is_just_a_function · 1.3ms
node add_five · 0.0ms
wrote {"total": 5}
node add_three · 0.0ms
wrote {"total": 3}
operator_add_accumulates_across_turns {"final_total": 8}
scenario a_custom_reducer_is_just_a_function · 1.3ms
node add_five · 0.0ms
wrote {"total": 5}
node add_three · 0.0ms
wrote {"total": 3}
operator_add_accumulates_across_turns {"final_total": 8}
scenario the_wrong_reducer_choice_silently_loses_data
scenario the_wrong_reducer_choice_silently_loses_data · 1.2ms
node check_first_order · 0.0ms
wrote {"order_ids_checked": ["A100"]}
node check_second_order · 0.0ms
wrote {"order_ids_checked": ["B200"]}
a100_never_recorded {"final_order_ids_checked": ["B200"], "a100_survived": false}
scenario the_wrong_reducer_choice_silently_loses_data · 1.1ms
node check_first_order · 0.0ms
wrote {"order_ids_checked": ["A100"]}
node check_second_order · 0.0ms
wrote {"order_ids_checked": ["B200"]}
a100_never_recorded {"final_order_ids_checked": ["B200"], "a100_survived": false}
scenario two_nodes_writing_the_same_field_in_one_super_step_both_survive
scenario two_nodes_writing_the_same_field_in_one_super_step_both_survive · 1.8ms
seed_passed_to_invoke {"message": "go", "total": 0}
both_simultaneous_writes_survived {"messages": ["go", "left branch", "right branch"], "both_branches_present": true, "total": 11}
scenario two_nodes_writing_the_same_field_in_one_super_step_both_survive · 1.7ms
seed_passed_to_invoke {"message": "go", "total": 0}
both_simultaneous_writes_survived {"messages": ["go", "left branch", "right branch"], "both_branches_present": true, "total": 11}
node left
node left · thread=ThreadPoolExecutor-5_0 · 0.0ms
wrote {"message": "left branch", "total": 1}
node left · thread=ThreadPoolExecutor-5_0 · 0.0ms
wrote {"message": "left branch", "total": 1}
node right
node right · thread=ThreadPoolExecutor-5_0 · 0.0ms
wrote {"message": "right branch", "total": 10}
node right · thread=ThreadPoolExecutor-5_0 · 0.0ms
wrote {"message": "right branch", "total": 10}