Graphics

AnimateProcess[obj0_,trange_,yrange_]:=Panel@DynamicModule[{u=.1,obj=If[Head@obj0===List,obj0,{obj0}]},
Column[{
Animator[Dynamic[u],{.1,∞,.05},.5,AppearanceElements->{"PlayPauseButton","FasterSlowerButtons","ResetButton"},AnimationRunning->False],
Dynamic[
res = PlotSegment[#,{Max[0,u-trange],u,Max[u,trange]}]& /@ obj;
{g,obj} = Transpose[res];
Show[g,AspectRatio->.4,PlotRange->{Max[u,trange]-{trange,0},yrange},ImageSize->Medium,Axes->True,AxesOrigin->{Max[0,u-trange],Min@@yrange},PreserveImageOptions->True],
TrackedSymbols:>{u}]
}
]]

Drift model for Erlang link

PlotSegment[erlangfluid[λ_,μ_,c_,x0_],{tmin_,tmax_,_}] := {
Plot[λ/μ+(x0-λ/μ)(E^(-μ t)),{t,tmin,tmax},PlotStyle->{Blue,Thickness[.007]}],erlangfluid[λ,μ,c,x0]}

PlotSegment[erlang[λ_,μ_,c_,path_],{tmin_,tmax_,_}] := Module [ {path2,nextstate,g,path3,plotpath,plotpath2},
nextstate[{t_,n_}] := If[
n==0,{t+Random[ExponentialDistribution[λ]],1},
If[n==c,{t+Random[ExponentialDistribution[c μ]],c-1},
{t+Random[ExponentialDistribution[λ+n μ]],RandomChoice[{((n μ)/(λ+n μ)),(λ/(λ+n μ))}->{n-1,n+1}]}]];
path2 = Join[Drop[path,-1],NestWhileList[nextstate,Last@path,First@#≤tmax&]];path2 = Join[Cases[path2,{t_,s_}/;t≤tmax],Cases[path2,{t_,s_}/;t>tmax,1,1]];
path3 = Join[Cases[Reverse@path2,{t_,s_}/;t<tmin,1,1],Cases[path2,{t_,s_}/;t≥tmin]];
plotpath = Partition[Flatten[path3],3,2];
plotpath2 = {Max[#[[1]],tmin],#[[2]],Min[#[[3]],tmax],#[[2]]}& /@ plotpath;
g = Graphics[{Red,Thickness[.008],Line[Partition[Flatten[plotpath2],2]]}];
{g,erlang[λ,μ,c,path2]}
]

PlotSegment[erlangfield[λ_,μ_,c_],{tmin_,_,tmax_}] := {Module[{t,n},VectorPlot[{0,λ-n μ} ,{t,tmin,tmax},{n,0,c},
VectorPoints->{21,10},VectorScale->{.15,Scaled[.2],Automatic},VectorStyle->{GrayLevel[.6],Arrowheads[Small]},Frame->False]],
erlangfield[λ,μ,c]}

AnimateProcess[{erlangfield[50,1,100],erlang[50,1,100,{{0,1}}]}, 10,{0,100}]

AnimateProcess[{erlangfield[50,1,100],erlang[50,1,100,{{0,90}}]}, 10,{0,100}]

AnimateProcess[{erlangfield[50,1,100],erlangfluid[50,1,100,1],erlang[50,1,100,{{0,1}}]}, 10,{0,100}]

AnimateProcess[{erlangfield[50,1,100],erlangfluid[50,1,100,95],erlang[50,1,100,{{0,95}}]}, 10,{0,100}]