Replay one Scala execution as it crosses from a client source file into a worker source file.

Client and Worker Files

Project Entry

RequestClient.scala
object Main {
  def main(args: Array[String]): Unit = {
    val command = 
    var label = "health"
    if (command == "refresh") {
      label = "cache"
    }
    else if (command == "archive") {
      label = "storage"
    }
    val response = RequestWorker.handle(command)
    val ticket = 40 + command.length

    println("label=" + label)
    println("ticket=" + ticket)
    println(response)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val command = 
    var label = "health"
    if (command == "refresh") {
      label = "cache"
    }
    else if (command == "archive") {
      label = "storage"
    }
    val response = RequestWorker.handle(command)
    val ticket = 40 + command.length

    println("label=" + label)
    println("ticket=" + ticket)
    println(response)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val command = 
    var label = "health"
    if (command == "refresh") {
      label = "cache"
    }
    else if (command == "archive") {
      label = "storage"
    }
    val response = RequestWorker.handle(command)
    val ticket = 40 + command.length

    println("label=" + label)
    println("ticket=" + ticket)
    println(response)
  }
}
source-panel When an example has more than one source file, replay keeps each file in its own panel while preserving one ordered trace stream. The Variables panel follows the actual `RequestWorker.handle(command)` call into the worker file and the returned response back to the client.