private RunStateData getRunStateData(Backfill backfill,
Map<WorkflowInstance, RunState> activeWorkflowInstances, Instant instant) {
final WorkflowInstance wfi = WorkflowInstance
.create(backfill.workflowId(), toParameter(backfill.schedule(), instant));
if (activeWorkflowInstances.containsKey(wfi)) {
final RunState state = activeWorkflowInstances.get(wfi);
return RunStateData.newBuilder()
.workflowInstance(state.workflowInstance())
.state(state.state().name())
.stateData(state.data())
.latestTimestamp(state.timestamp())
.build();
}
return ReplayEvents.getBackfillRunStateData(wfi, storage, backfill.id())
.orElse(RunStateData.create(wfi, UNKNOWN, StateData.zero()));
}
}