Workflow and Source Panels
Response State Panel
Replay a small response state machine with scalar request and response values.
response state
Model a response as scalar state before handing it to a real service boundary.
Response State Panel
response_state_panel.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;
my $route = "status";
my $status = "";
my $message = "";
if ($route eq "refresh") {
$status = "ok";
$message = "cache refreshed";
} elsif ($route eq "archive") {
$status = "queued";
$message = "archive queued";
} else {
$status = "ok";
$message = "service ready";
}
my $payload = $status . ":" . $message;
print "route=$route\n";
print "status=$status\n";
print "payload=$payload\n";
use strict;
use warnings;
my $route = "refresh";
my $status = "";
my $message = "";
if ($route eq "refresh") {
$status = "ok";
$message = "cache refreshed";
} elsif ($route eq "archive") {
$status = "queued";
$message = "archive queued";
} else {
$status = "ok";
$message = "service ready";
}
my $payload = $status . ":" . $message;
print "route=$route\n";
print "status=$status\n";
print "payload=$payload\n";
use strict;
use warnings;
my $route = "archive";
my $status = "";
my $message = "";
if ($route eq "refresh") {
$status = "ok";
$message = "cache refreshed";
} elsif ($route eq "archive") {
$status = "queued";
$message = "archive queued";
} else {
$status = "ok";
$message = "service ready";
}
my $payload = $status . ":" . $message;
print "route=$route\n";
print "status=$status\n";
print "payload=$payload\n";
$route ← status, $status ← (empty), $message ← (empty)
4my $route→ status = "status"; #@route="refresh", "archive"5my $status→ (empty) = "";6my $message→ (empty) = "";$status ← ok, $message ← service ready
13 $message = "archive queued";14} else {15 $status→ ok = "ok";16 $message→ service ready = "service ready";17}$payload ← ok:service ready
19my $payload→ ok:service ready = $statusok . ":" . $messageservice ready;2021print "route=$routestatus\n";22print "status=$statusok\n";23print "payload=$payloadok:service ready\n";outputroute=status status=ok payload=ok:service ready
$route ← refresh, $status ← (empty), $message ← (empty)
4my $route→ refresh = "refresh";5my $status→ (empty) = "";6my $message→ (empty) = "";$status ← ok, $message ← cache refreshed
8if ($routerefresh eq "refresh") {9 $status→ ok = "ok";10 $message→ cache refreshed = "cache refreshed";11} elsif ($route eq "archive") {$payload ← ok:cache refreshed
19my $payload→ ok:cache refreshed = $statusok . ":" . $messagecache refreshed;2021print "route=$routerefresh\n";22print "status=$statusok\n";23print "payload=$payloadok:cache refreshed\n";outputroute=refresh status=ok payload=ok:cache refreshed
$route ← archive, $status ← (empty), $message ← (empty)
4my $route→ archive = "archive";5my $status→ (empty) = "";6my $message→ (empty) = "";$status ← queued, $message ← archive queued
10 $message = "cache refreshed";11} elsif ($routearchive eq "archive") {12 $status→ queued = "queued";13 $message→ archive queued = "archive queued";14} else {$payload ← queued:archive queued
19my $payload→ queued:archive queued = $statusqueued . ":" . $messagearchive queued;2021print "route=$routearchive\n";22print "status=$statusqueued\n";23print "payload=$payloadqueued:archive queued\n";outputroute=archive status=queued payload=queued:archive queued