Actor Model Tenzir uses the actor model to structure control flow
into individual components. The actor runtime maps the application logic onto
OS processes or remote actors in the network. The actor model simplifies the
design a distributed system because it allows for easier reasoning about
behavior, while providing a light-weight concurrency primitive that scales
remarkably well, both within a single machine as well as in a distributed
cluster.
Execution Model An actor defines a sequential unit of processing, while all actors conceptually
run in parallel. Because actors solely communicate via message passing, data
races do not occur by design. As long as the application exhibits enough
overdecomposition (i.e., distinct running actors), there exists enough "work"
that the actor runtime can schedule on OS-level threads. The figure below
illustrates the separation of application logic, actor runtime, and underlying
hardware. The programmer only thinks in actors (circles), and sending messages
between (arrows), whereas the runtime takes care of scheduling the actor
execution.
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1daVPqytb+vn+Fte/XXHUwMDAzt+fhflx1MDAwM0TFXHUwMDAxXHUwMDExcHzPLSpAkEggXHUwMDEwwqC3zn9/OzhcdTAwMTBcdTAwMDKJYTS6YVdtlYROk6znWUOvtfp/v1x1MDAwZVx1MDAwZX47z139939cdTAwMGV+6+OaZlx1MDAxYXVbXHUwMDFi/f7LfX+o233D6qhDaPJ331x1MDAxYdi1yZlNx+n2//Pvf2vdbnL6qWTNar9+Ujf1tt5x+urc/1N/XHUwMDFmXHUwMDFj/G/yv+datl5ztM6jqU8+MDk0vVx1MDAxY5H+N/NWZ3JlXG4wwVx1MDAxMDH6cYLRP1RXc/S6OtrQzL4+PeK+9Xt4VqX1vj24eKYt3D8+XHUwMDFlXHUwMDE3R/x0etGGYZol59l8/VparTmwPVPqO7bV0m+NutNUx6Hv/Y/P1bV+U03g47BtXHJcdTAwMWWbXHUwMDFkvd+f+ZDV1WqG8+y+XHUwMDA3wMe7rzfhP1x1MDAwN9N3xu5ccmfTvyef8Pz9evGMZVq2e/F/gclrevWqVms9qil06lx1MDAxZuc4ttbpdzVbPZPpeaO3r0UpS0qEXHUwMDAxZ2//f5zR1I3HpqNOwchzeX1yryGAUCAh4PRRuFx1MDAxN+3m6pOn/l/vzejU325GZ2Ca03m6XHUwMDA3slx1MDAxZUmZfmbQrWuvj1x1MDAxNDJKOVx1MDAwMFBcdTAwMTKJp1cyjU7LP5xp1VpTKZi8+89fi4XP0cfOQrlcdTAwMDNBcodcYuBcYkHOI8vdY1x1MDAxZqQqjVQj5Wg8ffiUrfVcdTAwMGKHd1x1MDAxYpa7vqWAt0mxg2RW7JCkW1x1MDAxMztcYtC8oNE5OVx1MDAxM1x1MDAxMCOKId6JmFFJXHUwMDExwUuI2fR5Wlx1MDAxZKdkvExkXHUwMDA1zLx7pLVccvN55pFM5E/dn1S3a1x1MDAxYTXNUYL2d+fcejRq3tvZ19X13Vx1MDAwMT0zcj+ZMo1HV1p/m3pjVoxcdTAwMWQ1mPlx2LG606M1NVx1MDAxM01ccmfn6v5vZNnGo9HRzHLwrELRpJum0e0vJHJcZoNcdTAwMDBcdTAwMDVcdTAwMTGBXGJcdTAwMDFJSGREdWVnRLJcdTAwMGa1p44o9G9cdTAwMWaHI4ufXHUwMDA2MblcdTAwMGZcdTAwMTlfhScsfDQu1qLxfyEkqjqbx5JcdTAwMDe2XHUwMDFmUFwic1BCXG5yiFxiKuHGsPR2YCpcdTAwMTWe50Xs7sBcdTAwMTmV2salc69XWs104eH88mPuM1wipNm2Nfr9ceSfv8LGzVx1MDAxNK9SeXzUJqNcdTAwMTfQfexq7WdcdTAwMWSXNjDu7cvx+PBpmHVcdTAwMWFdM31+i+VVXHUwMDE1nEZcdTAwMWL37bfFzMKZuutYKculmGVVyHlcdTAwMDDlh5yaXHUwMDAxXHUwMDEwXGZFR1xc9vzokZ1edFx1MDAwNqUr0jSuSc/JXHUwMDFljWKOOOTTYOtcdTAwMTlOa1wiXHUwMDBlXG7CKVx1MDAxNkJ+a8C1T+7H4yf7opkqloaAXHUwMDE1jFwiP6rEXHUwMDEzXHUwMDE4r9dfXHUwMDAwXHUwMDBijkRcdTAwMTAuMMNcdTAwMWMryzc6LsJvdDxx4dNEXGJtXHUwMDA3XHUwMDE3mCaBVFx1MDAxZVx1MDAwNeNCeWlcdTAwMDSxXHUwMDA1zoRIUqpuOlx1MDAxNVxmIMBcdTAwMDFjftggQFx1MDAwMFSnbN23WE1cdTAwMDI9N06znbTRqVx1MDAxYp1HdXBcbp13XHUwMDA3OFx1MDAxN8FwmZiJtYE7S5BUN1x1MDAwMyuniiCAKEJcdTAwMTh7TnrUuq45nETqKFfmXHUwMDEzJ1xmSoDeTvhA8G+9U/98SuHM7plSXHUwMDAyJClcdTAwMDFcdTAwMTQwXG5cdTAwMTnkRFx1MDAxOTBobk4oXHS8L0jm5mRqfSdjtduGo+58wTI6jv9cdTAwMGVPbmXKRW9T1+ZMVPWdvMeUY2H4glx1MDAwN1130FmGnP52MFx1MDAwNcPkj4/f//vXwrNcdTAwMTOBUuy+5uV3Ot4v789VtHcgSylMYCVcdTAwMTFSRKepgmxcdTAwMWPbqXKjW1x1MDAwM72b2ih/XHUwMDBmTO58M5r6WvVNIVx1MDAxMeopy83x0E8ymDnijq7XaNo6qtxWNGtcZk+r7XjaXHUwMDA1IZCjKFxiclJggqRkXCIy4m5vtEyve5u/KFxmWMuQT1x1MDAwNj+9uY434og/5POliENMQEKh/N5cdTAwMDbzXHUwMDFhnmTouJVz2jNG94fG7Vx1MDAwYkf9i2v+UMWH8Vx1MDAwNFxcsCGOeVx1MDAxMN4gQFBcdTAwMTKm7J/IgFx1MDAwYqe2eFx1MDAwMlx1MDAwZfgtcf+1N1x1MDAwM7hcdTAwMDV4w8KPN4U0ilx1MDAxMSGbw9v3MLTnbFi4mlx1MDAxZFx1MDAxZG5iLXnFb2Ylz5yNxZJGcCBBXGKG/e9+rP4pXHUwMDAzWChcdTAwMGJ4KtqfKuRQJo4nP/gjWFvy1CMqZMkwZ5hNSftcdTAwMGYliFxyOd7hXHUwMDE2ondcdTAwMDZJXHUwMDBlOFx1MDAwNMpcdTAwMDOFUChcdTAwMWZ0uvT4c1x1MDAxOITMnE4850eikJWi4Fx1MDAxNDHJXTmLzCH0+u6imlx1MDAxYjyjbK90mGXVWurKOow3h/jdaEy+1I1GmDKJINuvO+3SW1gjbL8tLyR03EKicHyaSWcuT3JPhUb2cnB5dHH8zbxcdTAwMWJcdTAwMTjo3FCIIaB8ifXu8OdcdTAwMTdP3vFcdTAwMDVcdTAwMTMw+EreIVxmSKW04c+wXVwih+xXslx1MDAxY1wiXHUwMDE5L+GacE3z6c+yXYJcdTAwMTmE+t/8XGKPQOX6UIaWcH/CI7SxpFx1MDAxMH94ZFtcdTAwMTRcdTAwMTLNcoHKWiRcdTAwMTDgn1x1MDAxMVx1MDAxZtlotGKGMWYn+b2QvC0gXHUwMDA3LuVBzlx1MDAxOKNQXHUwMDE5xJGBXHUwMDFjbnPFXHUwMDEzyCxOtlx1MDAwMJRcYiGleH5IICNyXHUwMDE4IbG3XHUwMDA2dpIxsL1QhlxiLIaAhFAoqLJcdFwi81xiwoWm0YJpXHUwMDAzP9gnfXLujK+M53jziD+WQb40XHUwMDFlypFcdTAwMDBcZjK2z1xi2IcygsddI5RcdTAwMTE67lx1MDAxNbmvmMVcdTAwMGJcdTAwMTNcXHeKqFd/ql81T5/iXHUwMDE5XCJcdMu4XGJOUWZCYESWqVxuKJVcdTAwMDFcdTAwMWacj4TZP27KXCJt54vp/m28XHUwMDE5jfoto69Nclx1MDAwMpwrXHUwMDAzXHUwMDAx0310dk9pwePmsj0+OnlcdTAwMDL5M3llX+RcdTAwMDanx/bg5ttRXHUwMDBmXHUwMDBiTPaCSEjs1sdEZp7zdrltouxdb3zdLF9cdTAwMTSH9cJzOlx1MDAxMW/mYbGKz0LCXFxH2PPg98QzXHUwMDFkd088r+PeV2pPnWvAcoRcdTAwMTeHh6n29VXrXHUwMDEwb2DcfLNtnl2Xs+bg+LAtz47v21x1MDAxOEUktNBxXHJ90L7rs96ZcVY9MjPNXCKwrkZcdTAwMWJcdTAwMTj3XHUwMDA2Xr9oj72SXHUwMDAxzFx1MDAxMzKw7sumqKe/lthDx1x1MDAxZFx1MDAxN2n5LidPzZvx6K5fPDoyXHUwMDExOtvAuKXKWa06arUv26f97Nl1vVx0NZt8O0VEg8P8wi1GXHUwMDEyXHUwMDFlZv40XHQy06lU0pdjUETtVPusnzlOd3PxVkTcn+T0pVx0XG7uslxuxYTvXHUwMDE10V5cdTAwMTFcdTAwMDWPu4ZcIopcdTAwMTHxXHUwMDA091aBWDIkXGLG0cOJ2Lp75MatVuyxk1x1MDAxN6JdPiW6nZinKPiZ54tNYKCoR7pFwnvq+bOpJ0ZcdTAwMTThacIy5yQzJiSgPDpFdNsp2lx1MDAxMico+3TdyF9o7KpcdTAwMDNcdTAwMDcxL0Kco4ivjc9BXHUwMDAxXGJU//ZLXHUwMDBlfzhFbMvtjFx1MDAxMfVcYuZ/0+NcdTAwMTZB6mItMvO07++ubmssr1xytLvz45uz9lG3nok38/hXXHUwMDA2vtYtUrecUCyo3Fx1MDAxYid75lx0XHUwMDFld43A1K6ZZ6VkLVx0JCVcdTAwMDJPV1x1MDAwZT4jnnBHMZbEw/xcdTAwMDUjO/SK5ntLXCKAXHUwMDE5RJzhzS1JfmWyVvhC0cFMslx1MDAxNiFcdTAwMWNBTJXESSmpmDYlOthwIVp40HDzk/pmXHRds/lcXFx0tIP8blx1MDAwNLiQXGbSJTq8hK9hfFx1MDAwZqbZYTrXXHUwMDAy31xuMEExQZuzcL5cdTAwMDXR/FH53STo9DWBXHUwMDFjbDIwgjldKpcg3Hv7XHUwMDFlQN6hr7KgXHUwMDFktcSMS8g22KrpeyB5d1x1MDAxNkN4JG/jc/rWLLNBe8FcdTAwMTNcdTAwMTKYa0pcdTAwMGVcdTAwMTFmZImQSLirXHUwMDE2S5qhkiWnTDtcdIpwlGS+62+IaliSeDtcdTAwMTku6oRPklxcel6edfz3qlMskMBcdTAwMDL8jJKx8CDaOibFToyY70ZcIkFcdTAwMDLovuZFb2NcdTAwMWNcdTAwMTO88YEykKlcXC4jOzyhKJYkw1x1MDAwMEgyZbYxgSVcdTAwMTLQ04FoYtlwllx1MDAwNIBcYlwiXHUwMDAxw5BT6ZvXhjrniiRnXFxdXHUwMDAxQaJsXHUwMDE54smSn26P4LZalUxcbohcdTAwMTh2a3/85MM5hFx1MDAxYzHxM6rcwnP7XHUwMDBmdlHyvoQh9vP79Vx1MDAwNIuo+0rMSefG+CkkOuu6WVKhNjI9hdfmxJKe5mrit7SNRKRVIYYgolLQn+ForVHEulwio4SXYP5s+2ZrRbKeLU3mumZgyrlcdTAwMDDRe4pcdTAwMGWbXHSROmnRTv/5/lx1MDAxOFxcXklcdTAwMGJcdTAwMTZS8SaIuYqyL01qo4RJTuk3b+K7XzaO7bJx6Lhr1Fx1MDAxZLyz0Fx1MDAwNvXRilx1MDAwNk9gXHUwMDFhXGaCmCk+QDy6wVx1MDAxM35DYslnzG/wfOVcIlx1MDAxMeVCQiB+SFx1MDAxYrFw7bZccoPnj1x1MDAwZeistfZcdTAwMTRm8Fx1MDAwNC8jMyE4kEt4RFx1MDAwM1x1MDAwMG5sUGxcdTAwMTk485K6ouS8nDt5jDlB+FxuWb+2KVxiZIgzgjHaWzx7iyd43Fx1MDAxOHZcdTAwMDVcdFx1MDAxZPdcdTAwMWJVWlx1MDAwNlpSKLjOkiAu2VLbu4Tf6FhcdTAwMTKlv5s82dIqvbdLfUi+jfLEXHUwMDE5U1x1MDAxMvAzXHUwMDE2xzZcdTAwMWHKiWRLhavqn21LeUTMd34kYyqYXCKCXHUwMDE3vziljFOyhLNcdTAwMTXOmbGkXGLGdmNLLSBcYjHHXHUwMDEwQlxuRimSP8PZ2ihcXPfO1vtvUaLLXHSxLEHYes3xTc+7f2xcdTAwMTBJSIZcYlx1MDAwNJ4ujZ82ZS60XHUwMDA26W4uZ7XKXHUwMDE3ctw/bt9e14I2iWtqtebA1pcmibrWb+pcdTAwMWJlXHTkY1x0ul6I2bG1Tr+r2Upw55lCsW5SXCJcZjh7+3+eOdA8dXBcYqHk2+/VTClcdTAwMDdAWTLSs7ntmuZrqOjhQNHDXHUwMDAwYkHhXHUwMDEyXHUwMDA1+0VjnDlrJ47uUnl4ePkgXHUwMDA3xfS9XHUwMDExb/WEfbFAuqZ6XHUwMDEyTOhykasvXHUwMDE2KCg2J2VEMI5cdTAwMTBm23b130XD0cfOrM/1+iTTL3VcdTAwMDO3SK1Qq+TsbOW0f0lFbzlcdTAwMGZcZkhvivKaXCI8M89oxCmxcNur08jSu/g7b5Y5tyC/dFZ+3f2D15JgXHUwMDAwNNKAXHUwMDBiJJgvSpXGflx0hoBcdTAwMDGGqETbrq6aXHUwMDEwpdKMmNMlpGz6OK2OUzJe9FlcdTAwMTPdffdIa1x1MDAxYubzzFx1MDAxM5mIn7o5XHUwMDE3arrao35Q0Pp9ZSlcdTAwMWSkao5lXHUwMDFmpKrqPms1x1x1MDAxNUnPre3rajqvhv7MQCnTeHRl93dNfUHdnlx1MDAxMWvHqGnmx1x0baNe97J2Tc1OU2PauSh0a9nGo9HRzHLkya+uRbxawq9GXHUwMDE4kFx1MDAwNOAlXHUwMDAyIVx0XHUwMDFiWf1s5Tl3btVcbpxcdTAwMWS1pI60b6ZG1syhqel1UtfmQYhcdTAwMTapXHUwMDExPKdGMKNE0fDm3JzFWuQtoJkxn26y7WGb5HrcPlx1MDAxY1xmrm7Lt7NKZYbGl9JcIkqwPMbvlrRISFx1MDAxNrzgbpFcdTAwMDHhMLL0ht+O76JGxHaUXGJaqETmI3mAXHUwMDExXHTdnNhdKFx1MDAxMaLUlWef7tWUiGdR/Vx1MDAxMyWSsayubmuOMdRcdTAwMGZKNeVIXHJMr1x1MDAxNvAqXHUwMDBlMvPhjSmOT1xi1q84XHUwMDE2T3hccmVcdTAwMDFcdTAwMDIzLom7e1x0pyB6Png1kas5hdNM56Y6wJecNa2baiPeyoKKXHUwMDFkKVx1MDAwYlx1MDAxMElZSCX+fGd9OPKnNZY9s9rpRFdcdTAwMWL2elQ7rICA5a+4aovg7ppcdTAwMWNDKVx1MDAxNXVFdzrCb0dMtYVXO2xTW0BcdTAwMTlNW1xiXHUwMDAxIEZb7+fwpixcdTAwMDRcXC2qu5KyyOvOyLJbXHUwMDA3XHUwMDE3XHUwMDEzRm9rXHUwMDAxXHUwMDFlxpZcdTAwMTTFJ+TqV1x1MDAxNPOTXVx0YDQ4IVx1MDAxZjGBXHUwMDAxYzh6PDTDXHUwMDA38LKPRuV89f5cdTAwMTJUxsyuZIM6xMVcdTAwMDZgkOKkXHUwMDBmYuutrIZcdTAwMDZEPVx1MDAwZfS0XHUwMDE2aFx1MDAwMcqUcpZcdTAwMTJucCeHXHUwMDEwmFGBlNO4JsyiO/ZcdTAwMTNf+O9OcdBxjLa+XHUwMDEwY1x1MDAxZdDPYMzUXHUwMDFiTlxiwlx1MDAxY6tcdTAwMWJcdTAwMDSvmW/jx5JvRqtbW559keeq7yQhiFFcdTAwMWVdXd1cclx1MDAxZlx1MDAxY+tcYjw/nThcXMMtUbi+ulx1MDAwYoqRxcTawnjW2mJrVthcdTAwMDVFeFx1MDAxN6UoLFhGoFhgzMBOQIRcdTAwMTn2qtBtLiN4ilx1MDAxYedLJCBHXHUwMDAye6JcdTAwMTGf7iPWMsxUatA6vqG6bUijN9Cz5zGXMumTsjW7eq4nZUgoXHUwMDFmilx1MDAxM7TtKqo3KVP+2sZyrVbkMlxuibJcdTAwMDGhjG5cdTAwMThcdTAwMWNlrpW2zzXYhdE4rVx1MDAxZqHDbvYl7pV6NE5CxjFGXHUwMDAwQbqTXHUwMDE4XHJW31WK3VxiWSCVcVxmlPGJSPRgoFVcdTAwMDf1jIZr7DnbyGpcdTAwMTRccm9cdTAwMTLgKN5CRmGchFxmXCIhKKLbz+l7lTJcdCHc+qKlgIFcdTAwMTKGlOVLXHUwMDEwICx6XHUwMDAw7LbSTPGrdLaa67bLXHUwMDE1Rysl7l7KMVx1MDAxNzEkkkqsIGVo1sthUCSl8jKY4OtFXHUwMDE0qvVao15dkPvB5oVuflx1MDAxNVx1MDAxZVwiSjhFcINcdTAwMTn3YVErJCBcXCZqtcjViVx1MDAxZVG4VVx1MDAxZbquPIty09a1+t+dg4JlmVx1MDAwYj1cdTAwMWVcdTAwMWFcdTAwMTBV2JLHs3hiq/O4XGbp9qwkUIplklx1MDAwM6qy2r1kPHWELrpcdTAwMTkyPq5lSy3x7dKqxNemVcH54lx1MDAxNlx1MDAwNFx1MDAxNO+6VYc7MVWJgF73b5tWXHUwMDA0gYFboUhlmFx1MDAwM7iMrdqoNuziYHA9vmuXS1fGoNaonrbizfHYV1x1MDAxYSDWLFxyXGJMrIpWQ6XuOcaEwt3EiLngnqjDNsVcZnmu43eJlHaR0LP3y2dSdqrr4+xjzoYnY1x1MDAwYlx1MDAxNSDOdC6KMd9Mw1/Ku66UQapp3lxi98dKXHUwMDA0WyBm8zFSqlxmSMzwjlx1MDAxMi/KV5UxLJr3Wr58Y7488XGt3fY2Wfabolx1MDAxZlx1MDAwN8KX0iZcIoy4XHUwMDAwaGNOfbAlXHUwMDFjJLxcdTAwMWNcdTAwMTGEmNe5/Ex6w+9GTKWX+qR3Las3VD1DXHUwMDFhjSiJ212TyFxyrlx1MDAwNodF+bm78cbOTN/L0sHbXHUwMDEy1d+dc+05IOtcdTAwMDJvaTHtXHUwMDEzevWbw/OTXV1LKC862Fx1MDAxNlZPXHUwMDFjMCSih2dH7CyRudGL9+Cen4yfnu46Z4ZcdTAwMWR3pPmCXHUwMDFha6ZcXFx1MDAwNOmJqFx1MDAxNd1cdTAwMDRg5eUu1fTBU5Pz9sznS2qWwlx1MDAxZVx1MDAwNIpit83wMnhLbKlMcYyliO6ElUtNjTm9zEPRPq08ydMma1x1MDAxNE5iv5ZL6CZFL5TkPXc7bCWXUzd2u/Vm1l+xkHv5mqnWefy7U3ruO3o7XHUwMDBla7nzk1pcdEswZHdcdTAwMDckJGFcYkU39iuO1asnhjoqo8fasHR6VbHy1fhjic1gSVC+XrVDOJpcdTAwMTZlXHUwMDFmzTVFVa5cdTAwMDHiXHUwMDFjeFfRt1xuJ47Furmq0eF0otn1kWYvzojwNM7cXHUwMDA1ij7mXHUwMDEyXG6eydxcdTAwMTaBJ3hnWlx1MDAwNJmyXHUwMDBmXHUwMDEwjW5cdTAwMDHVM6jUxSZNdztGXCJlmLZJx3EvdPP1tOFbTChagFx1MDAxYu9cdTAwMDQ/kryxoEBZXHUwMDAwO3E1iOReU2P1amx/XHLybrYxmTm2vbpm9Zim5//y/lxcLVxiioLTQlx1MDAwMCZIXHUwMDEyQKJ7+M/5h+HzXYt3c1x086KLrFx1MDAxM3ly3I056nyp3l9cdTAwMWJcdTAwMDXFXG5uUIKtN9fddVx1MDAxMJQgXHUwMDFlKGZcdTAwMWNcYvcrL5HjhkUzf9s1wWnipl8qp/o3smf14y1mhMRJzCBnXGJIZfjvhtjjIWdI6TLJXHUwMDExjG5EXHUwMDE0nqlJ+/yoW7/vptL8oZc5e+nEW87ohsPta9JcdTAwMTlcdTAwMDeMu2lcdTAwMDTfT8yCrFRPxfzctl+UYjyzUfdnXHUwMDAyZlx1MDAxN9LpmtWzWlx1MDAxNVlJVC9ShcaTbMdbwPy96LdqpSZcdTAwMTVcXJX4cIqJpFxm41x1MDAwNbkhXHUwMDEwoCRcdTAwMTHupjucXHUwMDEwwVx1MDAwNZ2vd8eCMMFcdTAwMTjfzcqiu1nsMlx0Sn+MXHUwMDE1XHUwMDFi+DDd1/xjXFzSylxyxGvI3lx1MDAxMVxiXHUwMDEygEH0iMxVpnLRybcu4XPFyd6io1x1MDAxY6lcZmNeyUjYXHUwMDBl4bpcYp1zOoFcdTAwMDAmXGIlW99cdTAwMWbrXHKNUNCVlq9+Olx1MDAxYWfBt6xPXHUwMDE5iLbgjC7EKWBYLLGKdTdcdTAwMThcckc5/aVX7J6cuJlcdTAwMTJH4iHuu9UhmCRcdTAwMDQjoFx1MDAxYzkmJZzdSGqb4Ju9LmJ8wULDolx1MDAxMFx1MDAwZpHALXbZUYhHId9jf+/h+P5KXHUwMDA0Pz73teGgXHUwMDBmXGbzkiRcdTAwMDNCaeDoQZ9xWWSbhZw9IHq9dWW9mPbDi1x1MDAxOW+Y+ltefu1is3LEXHTDiC3jJW16rVnZX5gvg8x1pC8k1Vx1MDAwMfBXtVx1MDAxZFn6Xu6f06D5fCOOrDq9PlYkgfOZeEtcdTAwMWZHcZI+hISAhC/D/5tcdTAwMTc+N9t2U8JcdTAwMTe4OFx1MDAwYkiw704xXHUwMDEwUFx1MDAxOabRe2CNbmCvOUqMW5oxPjNRvt8zXHUwMDBipZhcdTAwMGJcdTAwMWXhSYqhv6TD3daPY4K3VNHBXHUwMDE2WFwiXHUwMDBiWkSoxyNcdIY/saCj5I7l9L2379PGXHUwMDEwW1qifZ9KKIKCrHtcdTAwMWNcdTAwMTL7YpJcdIg9+7B9uk3sdcFudO9TovVcImt3YjjI4ZZcdTAwMTVv/DBcdTAwMDRcdTAwMTRSXHUwMDEw5MJFXHUwMDBi9HSken6l9aRAk3wpJCmFa1x1MDAxNbEv7WhDmXQ7M1x1MDAwMUXliue8+91NS6ZcdTAwMThRSp7sJFx1MDAxOIvchi/L9Mf9Uyz9Wcd77qlNP/7L+3NzSEWAua14XHUwMDE4jVx1MDAxZaWmnfyof124L2lX1dFNu3YvXG7HVzFHqoBJZVdIylx1MDAxMIeceFpOvVwiXHUwMDE1JiF290hcdTAwMTJcZlx1MDAxMkbW2k1+eaSKpGBcdTAwMTJcdTAwMDDuNm/GXHUwMDE0zyNcdTAwMTVirKatqGQ3SIVcdTAwMTLsQ2SfnD3/1DaF1EBnXGIrk1xiMYCjq9TufaKWtrPGoFJcdTAwMWGdlZ+GQrczd/FcdTAwMDYqJzBJhVx1MDAwYkM3PkjlbPYgV/xIIOSYXHUwMDAxXHUwMDBllNolvnltXHUwMDE3qEqfq6khhiWSXHUwMDAyeZvKvW+FTNSktl6C/IZSLPYo/ezs+Ue2IZSG9Fx1MDAwM1D6XHUwMDA14iWSV/J9++W5eCMvSyfD0mBUhZd3Z3q8Qcr8XHUwMDAxi5BcdTAwMTb8RCpcdTAwMTjz1Vx1MDAwMlx1MDAxNlx1MDAwYkC4oPSfXHUwMDAzxb67WkByV1xiV/NcdTAwMTT/JNyxTa1cdTAwMWZcdTAwMDXnz0POXbtILrFcXHuWXHUwMDFlnKVHPXp3cXlcbkglp1x1MDAxZlx1MDAwZcpBXHT0cUGaiFx1MDAxM9JcdTAwMDR2XHUwMDEzWshuOrsod5F4XHUwMDFh2+yRtvDsjSGNXHUwMDA2Z9tjZXBcdFx1MDAwMVh0nabDVPlBXHUwMDE0XHUwMDAxNXAr83x69dikMOZNXHUwMDA3XcPTjdXMhD1fO9zIJEWfxEO3jj1cdTAwMDTczX0k2E2GJqTEu6PNXHUwMDFle1x1MDAwYs9eXHUwMDFhe0ErXHUwMDExOHT9lVwiRDmPvqfTTbNd7tUr+n3z2km/XFy/wPZ99TLe4MMuxmZQJ9ZsUFx1MDAxZLT4sChlcEE+tGI7PFt+8nNWXHUwMDFmMoXrvztcdTAwMTkroERs5Vr6VVcgptNZXHI7wduhXHUwMDEx6rZmi96XjdzIR/P0xVx1MDAxOLZcdTAwMWWz7cIhNbKGXHUwMDE1c/tcdTAwMTDzeFx1MDAwMUdxlSSEsG1rqT1utohcdTAwMWKqvGll79DoKue43XjRiv1cdTAwMDarn5SqJ93Wdbp6XGLijVx1MDAxY4LjhVx1MDAxY1x1MDAwZVx1MDAwNVx1MDAwNHz7q3F75KyPnOCexoBgwYSMjpzbx945Jmnt6qXA0/VbLZ1cdTAwMTk26zFHjoxcdTAwMTdyICZcXDDkTWLcQ+droVx1MDAxM5hcdTAwMGVcdTAwMWVcdTAwMWNkkIr8gLu1QWTo5Mo0XyieV2u43jw5XHUwMDFkkPG4fNeMOXRcdTAwMDBIvu61KSBcdTAwMTdCevq1vkX3klx1MDAxNFxiQt1ti4F3SX7L8Vx1MDAwNqVcdTAwMGKJVE4/QJJJpfnJ3NJcdTAwMTaiUFwiSLeejvXa1JlDXHUwMDA2l2lcdTAwMWTuuU9/Tvhh/qFNP/7L+3ODJY2EXHUwMDExzlx1MDAwMIfR83Ht6vnw4dBpnbXPhs08xja3QDbmKGUg6dZcdEmFRyWJZData1x1MDAxMlx1MDAwZqScul1klKsjfNPaXHUwMDEwRmcn4MmQ9ijCJFHercCSU0pcdTAwMTGYzvK9sMpd+eRU7lxissplWKlp1Fx1MDAwZodsXCLwUbqvuYe4KVxiXHUwMDA3mqiCU0GkN7f/M1x1MDAwNFx1MDAwM/hkcfowlP1+k+SbjYszJ1GLN4LVnUwqXcvdUFx1MDAwNFx1MDAwN95cdTAwMTjQu5rFmEEmmFKz3l5n21ezjGGBIVaMrZT8XHUwMDFjZKGyZIl0VzZ3g1lG96XJn50999A2XHUwMDA10WBbXHUwMDE4QIFcdTAwMDVcdTAwMDEkOkZT5Wb2vPqQXCL5dFx1MDAxNnBloLfsSsyLXHUwMDBmsOI+4bZeVu5cdTAwMWKWXHUwMDEy+FK9lEOX5Fx1MDAxMFx1MDAwMYxcdTAwMTBlbFtqdlx1MDAwMUZFXHUwMDEyXHQuXHUwMDE551x1MDAwNGPFI54o2HukhlHEXHUwMDE1m+9oXHUwMDE3XHUwMDFkyfC+XHTWJ2fPP7QgkP56XHUwMDFi8LfW7ZZcdTAwMWN1r3+/ly/9XHUwMDFlXHUwMDFh+ii9QHhcdTAwMWGTl+vwTiDugkmfVD398+uf/1x1MDAwNyRJ7isifQ==Application Logic Message Passing Actor Abstraction Cooperative Scheduler Network Middleman Actor Runtime Worker Thread Pool OS Network Layer Operating System Hardware Sockets CPU Core CPU Core CPU Core CPU Core
C++ Actor Framework (CAF) Tenzir is written in C++. We evaluated multiple actor model library
implementations and
found that the C++ Actor Framework (CAF) best suits our needs because of
the following unique features:
Efficient copy-on-write message passing A configurable and exchangeable scheduler Typed actor interfaces for compile-time message contract checking Efficient Message Passing CAF's actor runtime transparently serializes messages when they cross process
boundaries; within a single process all actors send messages via efficient
pointer passing. The figure below illustrates this concept:
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1dW1fbulx1MDAxMn7vr8hivzbZul/2WyDhWihcdTAwMTAo0HPOYpnEIVx1MDAwNjtcdTAwMGWJQ4C9+t/PKNDYudjExIBDcdcqYMmSLM18+mY0kv/9UiisXHUwMDA091x1MDAxZHvln8KKfVe3XFyn0bVcdTAwMDYrX839W7vbc/w2JJHh3z2/361cdTAwMGZztoKg0/vn77+tTqdcdTAwMTQ+Var73uOTtmt7djvoQd7/wN+Fwr/D/yN1de16YLUvXXv4wDAprE7RyZt7fntYM5ZcbmuBlECjXHUwMDFjTq9cdTAwMDLVXHUwMDA1dlx1MDAwM5Kbltuzw1x1MDAxNHNr5Xbngjd63f7uPb+mvY2Nu8OB3Fx1MDAwZWttOq5bXHUwMDBi7t3H97LqrX430qZe0PWv7Vx1MDAxM6dcdTAwMTG0TO1cdTAwMTP3R881rF5cdTAwMGJcdTAwMWEwSu76/ctW2+71xlx1MDAxZfI7Vt1cdO7NPVx1MDAxNLb/sVx1MDAxN/4phHfuTI9Hclxmn2BoovI13/W7pvK/0PBcbmu/sOrXl9CEdmOUJ+ha7V7H6sKghPlcdTAwMDZPr0WoLunoJUdZWrZz2VxuTFx1MDAxZVx1MDAxNanfXHUwMDFldjZGXHUwMDE4K6JcdTAwMTTmo1x1MDAxNFNrZ6sxXHUwMDFj9/9Fe6PdeOqNdt91w4aahGpEVsJn+p2G9TimWFxipLXihFNcIkbprtO+nizO9evXoVx1MDAxOFxm7/76Olv8XHUwMDAy+y6YJXlYq3jRI0RQgYSaW/Que6h83iw3y4ElVytX1Xpvv3Kasej1fFC+LCWPiXHJI1x0kmdcdTAwMGIpXHUwMDE3kjxEpkWNTUmawlx1MDAxNEZcdTAwMWbT7Fx1MDAwNO0pIZSMyKiRo+JcdTAwMTnqXjT3NtfvNjZ/XHUwMDFlXVf4+e2o7WNiZHW7/mBllPLr6bcsxTiUXHUwMDE2v1x1MDAxZNSch6EoirG765bnuPdjXHUwMDAzPpRvaODW/lphXHUwMDE3OsS6dNqX/21cdTAwMWaFg1Go2V1cdTAwMDeA+8FcbozoR4awZ0OrTDWUjZVXdp1LoyMrdXjc7o6pT+DAJDDKXHUwMDEw+J0wtVx1MDAwZS20oMDuVmPyTf2uXHUwMDAz7bLco7StTdRt23WdTm/mxMLw5M2RdjMlMOcofOXnlLuj21x1MDAwM1b9Wb9qq/3eyeXtwJfbcfPKhJK+l2pcdTAwMTOtS5JTjVx1MDAwNFx0VWn4qFpodvmLXHUwMDEwdWGLaf2OqHKCelx1MDAxM4xcYmGK6/CtXlO/WbfTXHUwMDBmXHUwMDA2Nc/5XHUwMDFlnNnn163V/Z/fvs+n31+Tyl07PCjv0XWPXHJcdTAwMWVQ57Jjefc2rWVQ7snDxl3l6rZcdTAwMWE0O+7qt1x1MDAxM6pcdTAwMGYu0HZcdTAwMDZ4JFx1MDAwNfQ6g1x1MDAxOY2EILzgtJqgepzFqlx1MDAxZSHQXGJNxPy6V/22fim2d9v92lx1MDAwMWs5x+wmqK5cdTAwMGZyrns0RveIeE/dw4pBq5TSS6163ubZ3d1Vd7dVPqzdXCKx71x1MDAxY8r183yqyGP9M1x1MDAxNERcblx1MDAxMashQlx1MDAwYmBcciiFhiT3dD41xMxOkoJxXHUwMDA3iEC0wONqQlBcdGGNXHUwMDA1Zlpwylx1MDAxNInVXHUwMDFhXtdcZjWStVx1MDAwNiGLNfG01lBewlxiqFx1MDAxYdg2kmqN8LRcdTAwMTJRVeJUUKq0JEhyxiZ1iiCGMGR5dcPoSTxcdMIqhXhG+s3qXHUwMDA2q067XHUwMDAxbFx1MDAwYlx1MDAxMkO9+m2/b81BdIZcdTAwMWO03jethFx1MDAwMVx1MDAxMiCnSjHg9Vx1MDAxY1CdRjJdWlx1MDAxZMPkS1x1MDAwNFIlJkwygTVcIk9cdTAwMTlG6r1it1x1MDAxYs83KVx1MDAxOf8jTSqiXHUwMDEyZ4gjwUFwJFx1MDAwM55DptpESih6YTbVJtfqXHUwMDA1a77nOVx1MDAwMfT8vu+0g8lcdTAwMWVcdTAwMWV2Zdmodsu2pnguvFM0XHJsXCJnwvfRMYWOw2f4WyFUlOFcdTAwMWaj3//3dWbuYqxcdTAwMTCba0p8w+K+RH++ZI6PNZ5cdTAwMTnYPURqXHUwMDFlKu1zXHUwMDAwtq+bXHUwMDFi3fJRs1NHNz/qg70z5MpgXHRcdTAwMDAsh1M8XHUwMDA340ZcdTAwMDHDelx1MDAxYvN52ei1JDKw7Tpf9dfPT84t/1x1MDAwZW9fePnkXHUwMDBlXHSqJ+JdppogriRcdTAwMTC9uXXv5Ie1dtM52dvd74trR185cvvHcb51j/JcXOpcdTAwMWVcdTAwMTFcbjOO9XLT61x1MDAwNSzQxHLPv/FcdTAwMWJncFZxTlx1MDAxZSTp7Vx1MDAxZcufXHUwMDE3tJJP1Yun7ZLHaZ5cdTAwMTaaXHUwMDEx4ELzO4yTMS6fiodB8ZSSXHUwMDE0XHUwMDAzoWMwxdNx9Vx1MDAwM9o+XFxSwFx1MDAxOCxghIiK1cZFaDtQT1x1MDAxOHKiXHUwMDE14owjRI07YSZzN1xub5zJjDLIJSb1XHUwMDE1NJVTkJ3s9HU5mPtcdTAwMTQpxi8j5smsLWWNy0a7k4TQXFzT4peSeseCUNROnVx1MDAwMCGCtDGqWcTD++z0n1xi9/lEIeNdXHUwMDAze0ZcdTAwMTFcdJaeRnRcdTAwMDKFXHUwMDAwpLRcdTAwMDLrT2hhbHM20bCMfFx1MDAwN7qEMFx1MDAwMFx1MDAxZWXwP47MXHUwMDBiIVx1MDAwMEFcdTAwMGUwR1x1MDAxNbSFXHUwMDEzhFwipO03X9CCSkFFuFx1MDAwMvuH4k9GjoJkJlx1MDAxYm1BSVwiXHRGs1RcdTAwMTgrwZmUU01aeoCKk8/faWOSmVx1MDAxMpqSvFx1MDAwMnLyZrikrpmSTKZYdePHp7tcdTAwMTdb/XtSvalVquKiXj7wK/nGpli3XHUwMDAwXSymY1G3XHUwMDAwoVxcaILF56rbW9o8XHUwMDBiLFW8li2VWO5cdTAwMDE7O3dcdTAwMGZ3XXTcPiQ3javGQWv76s9yu8TSrog7c1x1MDAwMtkoXHUwMDAz7WIyRaxQslxc5Fx1MDAxM9hcdTAwMDTMmlx1MDAxY3FcIlx1MDAwNaNcbjFcdTAwMWWaU0N4Q2D6XHUwMDAxmaFgXCKDIUypmGhZdqxcdTAwMGJcdIVcdTAwMDWC6URcdTAwMTJcdTAwMTFDu1xiXGJcdTAwMDRn2Ew4KpyQnrCQmfVnxfDHoF1zr468iPTMxbuSp+lcdTAwMDWZ31x1MDAxMtKumVx1MDAwMvo7cUw0U/KuWGxisazLXHUwMDA0oVx0ytj8XHUwMDA2YTJW51x1MDAxMptGbilDo8ZUflx1MDAwNE1PXilBQSdfXHUwMDA1mZ78XHUwMDAxSlx0Jlx0sECh5IzI2ohXXHUwMDAwuFx1MDAxOI46yJ6IXHUwMDFhtFEzjOjHcEpl6lwiem0wWnqbr5gkhOaaXHUwMDEyv6xcdTAwMDCIx4azMMUp12lcdTAwMTaDk8ltPlx1MDAwMUiqktRcdTAwMDJcdC6ZokSNR7M8ciOFQd2kXHUwMDAy7Y6wlqy5XHUwMDExVVx1MDAxMkx+wjRnfFx1MDAxNvyYXHSIXHUwMDEzzalcdTAwMTJYRk3UkUucXHUwMDEwXHUwMDAyXHUwMDEz8Vx1MDAwN/FJze1cdTAwMTEqfrKjt1x0VomTUXNNSWdKdEpwS6n4gFShXHUwMDExV1FW8Fx1MDAxYz598448l1RPb+6OW0e7h7eN/fvVYr7xXHQ6fFxmkZK2ebyBM4pcdLg4XHUwMDBiXHUwMDFk4p++qLDcT1/UY7ln5/Wr9jFcdTAwMTJbTFx1MDAxZd5Wyt7xwXWFZlDuXstzd46Pqm5/o+LpnY0zj5JcdTAwMWZcdTAwMTmU69h977QnbnacnYt1d611iPyDQVx1MDAwNuXWznfqXHUwMDE3g2vvu7fdq+5cdTAwMWM3Wtjqsnz6zlx1MDAxMlx1MDAwMFgmrFx1MDAwYmAhXHUwMDE0TbEssLbWPj9f/X6HXHUwMDBliVf2dnprXHUwMDFiq52tnFx1MDAwM7DWJSXztFx1MDAwZkcxblwiq+UnXGJ/gnB8uVx1MDAwYoBwnsAn1nWPhfFcdTAwMTcphub3j1H/9FI6J9bhjdh8YNb3q2KnnXPf/Sz0eWdcbmhcdTAwMTZcdTAwMTC02Y30XHQ/n/BcdTAwMTNb7lx1MDAwMlxcbSngh1x1MDAxM4ylZCmMz45X5tdqk1Svjpt7u5Y4aON+zndKzEJcdTAwMWaK3lx1MDAxNX2AejFcZv8+N0l8ok98uVx1MDAwYlh0b40+sY55ouNcci+mhJCMpnDNJ9PBfKJPilx1MDAxM05cdTAwMTb0viuNXHUwMDA0Z1xuUbNcdTAwMDUnhPRcdTAwMTFcdTAwMTBccuNSob8lY9BuXHUwMDE2XHUwMDFk/tFmUiowkYJmXHUwMDE3pvWe7vdkT2lhzP3OmCSYcs2Z1pqr0Fx1MDAxZFDIOEo02XuQfaOWzEVcdTAwMWYrx+YqTotwWN6X6M9cdTAwMTdcdTAwMDBVvIteU6GJ4np+oEomjjlcdTAwMDWqiT3wXHR72Vx1MDAxNlx1MDAwMio5xsZG6DSDJSGhuFx0bvuzwCizUIRkT0HKXHUwMDFhl1xyRsakbOKRRZFcIsmXLJWmKEW4UzLJyylSTFCaXHUwMDA0R/K7U1x1MDAxYVx1MDAwM95SY5HhhvTlQJG3YzTJPoHM27RsSJREaF6Pz8TvXHUwMDE0ZkhoyqlcZkOmnsOo5LD8XFxiXHUwMDE0ZahkYqGUlkipaGz80P0jQFx1MDAxNFx1MDAxNaaYY5BH6P34iKg5Tp2MXHUwMDA3MFxu0mxcdTAwMGWDQUSbLckhkVx0WU+JU62ZkIpQmDiiQZu/XHUwMDAxTEqwk1x1MDAwMV8+RkTm/OFIJlx1MDAxOEea3WOEYbNEgjNcdTAwMGKJqlalc3R9voF2yGlAT28qXHK858WYYGbbXHUwMDEy0iAoXFwzTsj0iT7LT5XipNRcXMVpXHUwMDAxzVxuobhEk3dHPFxuM1wiqOYpXHUwMDFj08lhXG65xCjJxnlcdTAwMTSNXHUwMDA0XWdcdTAwMWFcdTAwMWE+XHI7fCrwW2klOI9y29c8X1x1MDAxOXA5MrbZo1xm4sfFe3LK1zfqaPuw6dnF5s7eq1x1MDAxYVuZmndLhiBjuYs8bVR34vHsOv6gQqKRpJimWDtPXHUwMDA2/rxcdTAwMWXPLtQ4Trzm8exYv+h4doJcdFdcdTAwMDJhXHUwMDFh2l+vuaL1WvtE3ZNi81x1MDAwMVXdXHUwMDFm9Xr1ht9cXG9cdTAwMDermz8zWHFcdE/jXHUwMDBlXHUwMDEx/vXWe3HEfT95QFx1MDAwN6RpXHUwMDA1k/z8rsxkKM3nxDpcdTAwMTFu/L5734mE+pFW6k1U43OxdzlcdTAwMTd7lyjMNt4zXHUwMDFhv0dcdTAwMWRjLJg5XHUwMDE3cH5Gn/xphCyAJ/upmlNWXHUwMDAyY5FcdTAwMDDag1x0g8OXffSTTrYknZuhaV0gxGfM2WN1Uq1mzNk8Ylr89iuY7ahKRbamPI9LXHUwMDEx9vskXHLT/rlcdTAwMTSGgDYmZWSjWPaGQPJXUVxuY+5cdTAwMDZFXGKHZjEgllxmcTztm3zGNFx1MDAxOG/2clH4YrxcdTAwMTCZXHUwMDBi61x1MDAwNVx1MDAwYuCRXHUwMDAyvkR/xoFM3EdzRPziizBLtDpcdTAwMDW12bD2b/2t8t3u2UVno7zeYv7a2mq+qVxywVx1MDAxM0H8PN51OVx1MDAwZrVp4iZpkmlMUTOoXHKZojZmuyY2R26ERtqbY0h6Xlx1MDAxZFx1MDAwZfBLvnKz3/Xr8FwihXK0Y0efscFv/Vx1MDAxOZuwOS9SJ4ziw1x1MDAxZSilSqo09nVF7smdQdXv1rbcvV7NU9ae2sm3Qlx0zUpvpFIzjvefVikpXHUwMDEw5WZcdTAwMWL3n6dRq/nSqNWXaVx1MDAxNCFcdF91U0woplN8WuPWaVx1MDAxZlx1MDAxZGzfbp192zm6PPNcdTAwMDbXfW1n/UHB7L/qlsJhNYdjO9lhXHUwMDE1YbZcdEa40EJcdTAwMTFcdTAwMTb9lONrXHUwMDFh4fhmvfOtdrx52/E2ylx1MDAxNeHXmrWD3Vx1MDAwZuefWkzrt9pFz/b87n30K2xDomx3XHUwMDBi+1avZ0j1LEB4+y/FzdPSRKyItZhpPFhImHxcdTAwMTlKsUqfLHT5tJenkGLBoMNYXHUwMDEzmczgs2JcbiW4MUmR4Gm82PmZfOc0iZOnlMJYuI5cdE4hXHUwMDAyYaXMyq+KZPr4XHUwMDE2sVx1MDAxYctP5jChydhcdTAwMTNcIrOIQ1x1MDAxYfli2pRfjVx1MDAxMyGExvPjRPIkkk+cXHUwMDEwLFc4gVx1MDAwNVZ4eHb/J1CsPIbJSImgVVx1MDAxNCtccvRcdTAwMTZHjqL/+EghUlx1MDAwMsXcOPHlqYhcdTAwMTWr06lcdTAwMDUw+qPBgrGxXHUwMDA3q7NcdTAwMDR7eFx1MDAxOTYy7GijzfZQ+H59+fV/gU9cYqIifQ==IPC Messaging Transparent Serialization Process A Process B In-memory Messaging Pointer Passing
The main benefit of this capability is deployment flexibility: CAF decides when
to choose pointer passing and when serialization, based on whether an actor
runs remotely or within the same process. Without changing a single line of
code, we can create different wirings of components while retaining maximum
efficiency.
Flexible Distribution Letting the runtime transparently manage the messaging yields a highly flexible
distribution model. We can either bundle up all actors in a single process
(centralized) or scale out individual components into own processes
(distributed). Examples for these two modes include:
Centralized : network appliance, embedded device at the edge, vertically
scaled many-core machineDistributed : cloud functions, auto-scaling container environments (e.g.,
Kubernetes), multi-node data-center clustersYou can think of two ends of the spectrum as follows:
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1bW1fiSFx1MDAxN333V7j4Xlum7pd5U0FFuvFcdTAwMDLa2N+a5YpcdTAwMTAgXHUwMDEyXHUwMDEySIJcbrP6v08l2iRcdTAwMDRcdTAwMTKJXCKGnsmDklSl6qRqn137nEr+3tndLXiToV74c7egP7U002g72mPhi3/9QXdcXMO2VFx1MDAxMVxuzl177LSCmj3PXHUwMDFiun/+8Yc2XHUwMDFjXHUwMDE2w7uKLXvwfKdu6lx1MDAwM93yXFxV9//qfHf37+BvtC/TNIauXHUwMDFlVFx1MDAwZlxuws4gYfGrNdtcbjqGmCCqyoGY1TDckurN09uquKOZrlx1MDAxZZb4l1xuX1x1MDAwN42BicrN0dNVr/Ht8qF9PjnYXHUwMDBiu+1cdTAwMTimWfcmZmCUa6tcdTAwMDdcdMtcXM+x+/p3o+31/L5j15Pucuxxt2fprjt3jz3UWoY38a9cdTAwMDEwu6pZ3aCN8MqTOlPPNzv370BcdTAwMWPF+j60Tdvx+/5cdTAwMWZcYo6w9zut1e8qXHUwMDEzrHZYXHUwMDA3IXGns7DO48tcdTAwMTORsJuebnR73vw1V1x1MDAwZlx1MDAwNlVccrc6KMGzXHUwMDAyv/1hpVx1MDAxZMzuX9Hnttovz22NTTM0yS8ox1x1MDAxMVx1MDAxMUVFZLpublv31lx1MDAxNWBcdTAwMTXCL1x1MDAxZkr7g6uLflx0z0yfg5DmOPZjYVby80tau7XewKxeNcrm+Lg0kNXjm1x1MDAwMUbXa2jX0MeDpstGVaN6d2RcdTAwMWX2LoF98bhauy+/wlx1MDAxMVx1MDAxY1x1MDAwZtvaM5Ah41xmIUJcdTAwMDTFNJx707D68cE17VY/xP5OxOBsLlx1MDAwN5NcXFx1MDAwZVx1MDAwMarcXHJwXHUwMDA0Vna5w0Pr9vbg7Fx0XFyiwf6g6lx1MDAxZVx1MDAxZVx1MDAxZlxmK/l2OSrmXVx1MDAwZX6qy1x0Qlx1MDAxOcWE597l8lx1MDAwNGFMkiAsmYBUwohcdTAwMTmvIVx1MDAxONvNLje+a5cjdjIl2tn93tC63S5cdTAwMDR/8qJcdTAwMDFcdTAwMTSEJeF0M1x1MDAxMH5cdTAwMDe751xuwjxcdMKEQ8RcdTAwMDWBbGVcYlx1MDAwZlx1MDAwN/u0L05Q+f6qU/umsVx1MDAwYlx1MDAwYo697YIw/lxcXGJDXHUwMDAxiFpcdTAwMThcdN1cYoS3SEg8979cdTAwMDTAXCJcIlx1MDAxMuLKXWLAOVx1MDAxMISsjOD0dSmXXGImklx1MDAxNqVcdTAwMTJMWGBAIaZkXHUwMDBlz4iJXCKDkFx1MDAxM8BcdTAwMTlmXGZwmlxib9qSXHUwMDA0tNPhXHKARjpwXHUwMDEx3oJcdTAwMTVcdTAwMTGiXG78VFx1MDAxMFx0XHRAi2inpMhcdTAwMDRcdTAwMDeAXHUwMDAwQFx1MDAwNZVcXMbBj1x1MDAwMGaKcVx1MDAxOIZrXHUwMDAz/3J4MiCloERcIigywDMybprjXHUwMDFkXHUwMDE4Vtuwuqow9KtfIWhlhSDQXHUwMDA3k91cdTAwMWH7Vu6BXCJlSixcdTAwMDBcdDCXXHUwMDAyS4JcIrW62tBcdTAwMWbfXCJcdTAwMTJcdTAwMDQpQiacMCgkfakwXHUwMDBiXHUwMDE0XG661X7dpnSVPG9cdTAwMTMhXHUwMDFjKThJNVBSMlx1MDAwMOmrRsFcdTAwMDWjTM31XHUwMDBl7cHA8NTYn9uG5cXHOFx1MDAxOMx937l7utaOl6qHipZcdTAwMTU8x3h2glmNod/oPNGFv3ZDV1x0Tma///qytHZcIor9Y29cdTAwMDHAYXM70f/ZKSxcdTAwMWPbXHUwMDA1XG6jklFcdTAwMGWjocFrXHUwMDE0lq5LcklhXHUwMDE0hPdcdTAwMDWkJZNcdTAwMTfh97BcdTAwMTRcdTAwMGb9fUZLS9ZgwNTSRdD6ZORW0FDEVV78e9GfV1wimfRAJmOPW8YgIcJi1d/JXHUwMDEwKVwiXHUwMDA3XHUwMDEziFx1MDAxOVx1MDAxN3h1mZ4u+3LJXHUwMDEw6VwiXHUwMDA3Q1rEQiAqXHUwMDExZlx1MDAxOEuUXHUwMDE3kSNcIjz2wi5STZaETK5P4W9cdTAwMDe7xDRcdTAwMGWOOMp6NU56XHUwMDEwOmfSnMRR8/WaSZxsOz+lKpxcdTAwMDXwZqQvR295MeMjiVx1MDAwNpqYK0NAYFxikbJqZVxuK5e50ejfXHUwMDFlgypqerg5KrVhbZBAYT2t1Vx1MDAxYjt6Zlx1MDAxMmtrbk9fL4uhWMY3cv6GZIPnaJY71Fx1MDAxY1x1MDAwNf1FskJYXHUwMDE2ZfRcYvM8M7bCi1x1MDAxOVxiXHUwMDA0XHUwMDExXHUwMDE1Su3jkLk+kp9cdTAwMDBcdTAwMDVcdTAwMTGd9c5cdTAwMWOBpz95y6CHQFwi9NTSqVxmyLJ4lniNV1x1MDAxZsu2U6+YNbc+XHUwMDEwWk1Uc754YjpcdTAwMGY7nLw+rpLj6sBcdTAwMGXqoEXIMbhcYjG0gDDOXHUwMDAwppRcdTAwMTORXHUwMDAxYFx1MDAxMa5/mexf3PRzM7hcdTAwMGLn17a8ujFccrDD5q5cdTAwMWVpXHUwMDAzw5zMTVJcdTAwMDBINWLnjt3yXHUwMDFmJDKqrq46XHJaIXPV902j62O2YOqdeTB7RkszZ8WePVxmS1uqe00151RcdTAwMTbWXHUwMDE32zG6hqWZjZgpqY6Uli9mKMmXuGC+MstcdTAwMTCqTo/rveOTliw3f+xV6pYzaJmH45z7UmzHQ7yLwd+9TVx1MDAwZSX00VxmMvjS29PF01x1MDAwM70/OG+0Tkek89h3R5f37dPSXHUwMDFh9rNcdTAwMGZ6d+5hXHUwMDEzTlx1MDAxZXp1cuY83tx/P7n/uoZ2T75cInw3utFcdTAwMTlcdTAwMDQt2WjgXpd8u12t3V96ZymFfEB6O106icSdcojVwZnEqztd2z5cdTAwMWH19WpfXHUwMDBlaqfN2mnr4kdXO8y9dIopJ0Q+TjmJJb5cdTAwMTc18JfzMUBcdTAwMTFW4ehGlFx1MDAxMlx1MDAwMVx1MDAwNFK2LrglKSVFJ0lI81x1MDAxM56EUbT6Xsr0XHUwMDE04rOJuL49KZ02jNL5XHUwMDBmaoxlvtlcdTAwMWTJXCKN4ewzpVx1MDAxMpOSMVx1MDAxNZ6yXGZcYnuTVPog1k9l0WdYQ1xiw7j7PyG2dECXOCpjaSGNXHUwMDEwXFzgLDosdYpz6anxN09SdJjOOH/NT5NSftFcYj1tMVBcdTAwMWFMMsjXKMTSolx1MDAxN1xiJOVvcZpcdTAwMTWzeunMvVx1MDAxYqbQYFx1MDAxMXJGOKBCIKWGlu1cXMI3pvEqw/7eXHUwMDExeDo7wdrV9O6mzY/LTXN5XHUwMDFhj1x1MDAxMVx1MDAwMFx1MDAwNcE+WVx1MDAxMsKlXFy0YcGELUvbRWDoXHUwMDFme1xugeEtO9H/2ZkkeclXvfqTXHUwMDFhXHIvXmOSdCm/XHJMgsFcdTAwMDaZZFFUXG6lsFx1MDAwNCWRjNVWXHUwMDEzSWqAv/tcdTAwMDGbj9MjUMfXZy3CbvTR9K7OrIfLN/e43SyxPoogyWJDqECYXGJcdTAwMDFWXHUwMDBmXHUwMDBi0qPynFJEXHUwMDExXHUwMDAwolx1MDAxNjmMJeE88lx1MDAxYUHAXHUwMDE4XGJcdTAwMTZcdGOQQYI5xojhmGFrXCJcdTAwMTDoJ/SpUszMjzzVscgnUlx1MDAxNCnGXHUwMDAyXHUwMDBiylx1MDAxMGM88m7n7Fx1MDAxZFlVijn7t9FLXHUwMDExqolTwTqhXHUwMDE0S4AlWtx+lEVMVLhHqFTLXHUwMDFlwZi9jYDkyGqDqypcdTAwMWXDh9q0dlxcuT7R3aTXvlx1MDAxOCZqoDCRXFxwSsnvKFxcXHUwMDEyQetcdTAwMWZcdTAwMGJwzchYaXlqmpinhkqrY6BGfPVcdTAwMDApXYzmkrNcdTAwMTCY1zWQvStj9s5MNVxuXmqee48tp5nqX8BbSmtcdTAwMWLP/PLElZdJzFx1MDAxOMVcdTAwMTm+Slx1MDAxY3q8dzN0O9XjNjq4OMRcdTAwMTeN+slR7lx1MDAxM78w/pXUXHUwMDA37pmvmPlcdTAwMTWMQMQ3tEWOJVx1MDAxM2FI+2GJX5FIl1iBjCCRgS3H51xyeDuWJq5cIr53d9mj4vb+Pt9sXHRFPPNcdTAwMGJTXlwi+/jML/RzKr6Hf+YueWbohVP8b0jOpqqPxK+qsFx1MDAwMlx1MDAxNqI8wzcp6SFtLt0pLj4+e5ucXGK1clx1MDAwM7hcdTAwMTnx8Y7t7JyJXHUwMDBmmVx1MDAwNGKl5ThnXHUwMDE409Xfm2qUa3VZOYDT/bOSvHAme+ed66etU1x1MDAxZjnYd8aCXHUwMDAxQTamPlx1MDAxNN7guuCWrD5cdTAwMTLpXHUwMDEyXHUwMDAyKVBcdTAwMTAnr4y0kXb1o9O9uSNP4r75rdRcdTAwMDfNqnuWb75cXJRcdTAwMWafu/EsXHUwMDAwXHUwMDAxWFx1MDAxMPS56iMj9P5TXHUwMDFmM/UhktxJLcxcdTAwMTRcdTAwMTBcbjJsXHUwMDBlpye0culOcflBUvZ0NiE/JIFcdTAwMDSvk7HT5Mfv89Zb4jdPalx1MDAwMYScZ9iWhPVxt+p6XHUwMDAwf78+nVx1MDAxY3hcdTAwMGaTzuOov3XiXHUwMDAzvy+Ft1x1MDAwZfFBXHUwMDE1XHUwMDAyXHUwMDAwY3JD4kMtXHUwMDAxWfZcdTAwMGbeKD5cdTAwMTLZXHUwMDEyXCJcYohcdTAwMTRi9VhccnevwVx1MDAxZVx1MDAxNtflI6JP9Fx1MDAxYVx1MDAxNU9cdTAwMGaVi3yT5aL2wOwztVx1MDAwN+JcdTAwMTJwXHUwMDA2UZYtqvVrj4zI+021x87LYlDQhsO6p8ZoNtaFXHUwMDA3Q388WDb5weHfXHUwMDFmXGa9XHUwMDBmeT2Yop87P/9cdTAwMDHB1ntiIn0=Process Process Process Process Process
Actor Scheduling By default, CAF uses a
work-stealing scheduler to map
actors to threads. The idea is that there exist as many threads as available
CPU cores, but orders of magnitude more actors than threads. This results in a
steady flow of work, proportional to the amount of communication between the
actors. The figure below shows the scheduler in action.
eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1dWVfiSFx1MDAxYr7vX+Fxblx1MDAxYqb2pe/Epl3aXHUwMDA1XHUwMDA1kfbrOZ6EXHUwMDA0iCQkhKDAnP7vX1x1MDAwNVx1MDAxZFxigSBh0TjT9DktplKpN6nnebd6K/79aW9vP1x1MDAxOHrm/pe9fXNQ12zL8LWn/c/h8UfT71luRzWh8e89t+/Xx2e2gsDrffnzT83z8tNe+brrPPc0bdMxO0FPnfs/9fve3t/j/yNj+WY90DpN21x1MDAxY3dcdTAwMTg3TYeTKH7wwu2MR4ZcXEJcIqRAYHKG1fuqhlx1MDAwYkxDNTc0u2dOW8JD+4/fdWr0/P75kLZx7+hocP3ET6ejNizbLlx1MDAwN0P7+b60eqvvR2TqXHUwMDA1vts2by0jaIWjx45P+lx1MDAxOVqvpVx1MDAwNJg0+26/2eqYvd5MJ9fT6lYwXGaPgan8z0/hy970yED9hiNnhD1I5I6fXHUwMDA3P3Rt11x1MDAwZlx1MDAwN/9cdTAwMDOMP9PRda3ebipcdTAwMTE6xuScwNc6PU/z1aRMz3t6uS0xvXTLtJqtIJzxyPg9c/xwIYBQICEgnbSEo3gnxnie/4refcd4uftO37angoVccsU4NqL4iMxcdTAwMWKoOGfdgWjclq9Zv3F4T9rOw+1E+Fx1MDAxOTBpvu8+7U9afr18m0rU91xm7Vx1MDAxOSGQMSClpJJcdTAwMGJCJu221WnHhbXdentcbqrx0V+f11x1MDAwMDOnyWAmXHUwMDA0XHUwMDEwKihaXHUwMDE5zLXHu8D9XHUwMDA2hlx1MDAwZsdcdTAwMDHXcFuUbq5q3Vx1MDAwNDD3XFxFy9RQjvXaXHUwMDAykvEsklx1MDAxOZWbIPlcdTAwMGbBhCnZPIrRXHUwMDAyXHUwMDE0izlcdTAwMTBzilx1MDAwNcZcZsCtYXhcdMpcYqJcdTAwMDTgt0FcdTAwMTlPQlx1MDAxOWFcdTAwMWNhQSlbXHUwMDE5ZKht2Vx1MDAwN1x1MDAwN/32UZWaviWtbt8snmVcdTAwMWJkhMZAxjZSl1x1MDAxYoJcZlx0Tlx1MDAwMVez//FcdTAwMTUlYVx1MDAwMEc02IZcdTAwMTBcdTAwMGXMQbBcYr1cIjJ9cfhcIlx1MDAwMjhlYHWDf3vfOuBXhaJ+4jmV+0Ar52qjSrbhi4CYha/YXGa+ulFvXHUwMDE4+jx8I0pgXHUwMDAyXzZv6JXa4lx1MDAxNEEkt4bfxVxi41xmMcyxcunSmOLpTLqdoGyNxqaUzVx1MDAxY/2mOZY9nJmOMfRCdLh+2/R/diot39SMn529kuva0afZM5VcYuE1KZnpfGBbzVx1MDAxMKv7dXVTpj9cdTAwMDPjwFI+8OSEwPWmrXUljqYu6J9cdTAwMTjx23J9q2l1NLuyVLT1bVx1MDAwMkFcIolVSFx1MDAwMERcdTAwMTlMYVx1MDAxNFx1MDAxYXrDv+73b1x1MDAwNjWnUr6y+vWGftrONqswmjVcbnxDViVcdTAwMTlcdTAwMDWywCiQeVYpd1x1MDAwMGNC4Vx1MDAwN3Q9xoxYgLCIhpjzbVx1MDAxMaGSclwiVkaYcYjKXHUwMDFltmnB61i5XHUwMDAzy/ZtOrAyjjBcdTAwMTJDXHUwMDE42V2Utlx1MDAxYciAcvVcdTAwMDDGXHUwMDEyv1x1MDAxOcjWUt29QPODgtUxrE4z3sXsXHUwMDE4XHQtttZcdTAwMGJcdTAwMGVdx7FcdTAwMDIlRsm1OkH8jPF1XHUwMDBmQi+npVTogisntnnh5WZ9rem3venTXHUwMDFm/zL5/tfn188mkdM/RX+up9RxXCLnOOVcdTAwMWMzKVan3PDi7nFYa3PvJGefe8g9lsdHXrYpR+KUe1eljlx1MDAxNdmgXHUwMDA0dHue/jbptpZOJzBcdF+QXHUwMDAywFVEkFwiX+GXXG6Futt12/fyPqefXHUwMDFmlFx1MDAxYVx1MDAwZtLJOMBY1nQ6XHUwMDE2hFx0xvjbOVx1MDAwZb91+itnp9bpSZEvTo58w8CIXHUwMDEywaaT8Vx1MDAxYduqLafSNe7NXHUwMDFmrZugMLpcdTAwMTlB54d+mW22ITi9vW2o86TIN1x1MDAxMmEuo5pcdTAwMDBcZksuxa71+XtEvoelm5+dQ9c3e1x1MDAwYsNd/NbhbkSe9VxmVeIqXHUwMDExQZJcdTAwMDKEUzDnpEIvStdnelx1MDAxZFx1MDAxYq3j0z5cdTAwMTlcZiq1VraZo+xUXHUwMDFlMEQlXHUwMDEykFx1MDAwYiHpLJFcdTAwMThcdTAwMDJ5XG6EXG7COMCARTyUOK2IeliUL6dcdTAwMTWkmqY3VjJgWOZJqLhcdTAwMDCSTKp4l9A4y1x1MDAxMIVcdTAwMTJB9d9ve5ZcdTAwMTV7Nj9pKe1bXHUwMDEySXHi6lx1MDAxN5NcdTAwMTRcdTAwMTKIxOokPai0imf63Vx1MDAwMbkoXHUwMDE0XHUwMDAxV5qj7d+Xs01STEBeYKb+XHUwMDExpe0lkFNt/UxSmOdcdTAwMTBcdTAwMDGMXHUwMDEwZSySK9k1R0VcdTAwMWVcdC5cdTAwMTnnXHUwMDA0Y4pAJFx1MDAwZvjPOpny8jlS7v5vjmaGo3OTlpKjpm1bXm9xxVx1MDAwNYtcdTAwMWacXHUwMDA0fVL5XFxEioiz9Fx1MDAxYU+tr8HBQ0m3iFO7zZ2OylWjaoGM8zSWKqZcdTAwMWKuXHUwMDFmXCIkdHODVDEkXHUwMDE0XHUwMDAzXHUwMDE04cRcdTAwMGXdUCZUcDlVPVx1MDAxYqZcdTAwMTWWgFxmgiVcdTAwMWVcdTAwMWLjgESXwV5cdTAwMDPZ98otc6pcdTAwMDTbvKdcdTAwMTcsV0d66c79YCBcdTAwMDPvXG4yLFx1MDAxMKFAcvTvXHUwMDAyXHUwMDE5TFx1MDAwNJlEXHUwMDE4UkZSLCWb+vDuvNh/8O1cdTAwMWMpNP2DpmPe2lx0IFu3dmznMCObJbA2hZlybqiEjGxPl03M3oJiiCM46FSDi8tcdTAwMWatx9rxZdlcZo6JPVqtXHUwMDE44vOy6+6qyGJcdTAwMDfkWLp8XHUwMDEwhc9cXHo3zO1cdTAwMDKYwtI/nPpmVyPcXHUwMDFicaPW8J5cdTAwMWXPrrtXma+tJHGCZKC2XHUwMDEySuXUcbJFlrzZQsLyurTEXHUwMDEyXHUwMDA0XHUwMDE5ejhcdTAwMTKg1U1+X1xmvzXaRfPm4aw7tK3jK3hYp9k2+ZRnqS6NQolVXHUwMDE4yf5tICPJqUDEZLhEh1dfsnoyKtffXGLRXG7dJ8+q5Xj3h/NtkHGUxZes3rnQhUssXHSNrEN/XHUwMDE4mCXmmklcdTAwMTLAoOBcXHlIXHUwMDAyr15KRbTrXHUwMDE2q4JR687u3ZXEuT9qfS1lXHUwMDFjYVx1MDAwMuY5g5hcdTAwMTLlXHUwMDFlSMzxLN6wzFx1MDAwYkpcdTAwMThAJExkRdaHt21OY1IggVx1MDAxNyEyXHUwMDFmhs8yLIcgmEQs0D9cdTAwMDClXHUwMDEwM1x0KN515PM7uTX+JCS3csmTXHUwMDE5fuamcXq9T9GfW6QyXCJcdTAwMDRKXHT46lSuXGKbPLSdY/xIK175tHtu05NR1qlcdTAwMWNbN5p1ULK7bCSUi0wxj9zgb9a+PWu3u2z0Sqya6NZRQSCWYvVI1Vx1MDAxM4Wzu4J5xTpcdTAwMGY154lcdTAwMTfLJ+aPYuYjVUoyXHUwMDE3qVx1MDAxMuXpcOVUT3Vklli4PthEolmgKmxcdTAwMTI8Ral8tXjgjL7fOCdcdTAwMGblM8D04lx1MDAxMVxu7GG2jYJyh2bNwLvGqVCZJaXso5V4/1x1MDAwZZBcdTAwMTGSmFx1MDAwZYEs3CDAcVxunN1Z1L/pXFxcdTAwMDBqeKXLm6fvx9XLw+OM40xkKVJlINySgT5gOiTJuaWJXHUwMDE2U6jATDl0KdJtTql5Prh4bDVHXVB6qFadXHUwMDExXHUwMDFhwIzDS8o8JZIp95Uo95XM7qpcdTAwMGLDVFx1MDAwNlx1MDAxOYZq3plcblOTyy02ruvNXHUwMDEzXG5UZFx1MDAwM6jyi6iyonxcdTAwMTFcdTAwMWPzWNlSgSXFStchXHUwMDFjRyeBUEU90VdcdTAwMWRkXHSe/1x1MDAxOX83cSrDz9wkpvR/XHUwMDEzeZy4SoOAQFxuXHUwMDE4OMUqXHI6capG239wT05cdTAwMWJO9fzkvlElXHUwMDE53+WhoryPXHUwMDE5pEJMOGJcZsHfuaX/TJSa7NNhXHUwMDFhlvxcdTAwMDG5+urD4/XwfPSot6+Nr7p947JRO3eXXHUwMDE0O2QnTmUsc3EqXGZcdTAwMGI9XHUwMDAwXHUwMDA37Fx1MDAwM65CJL4mgSVDLdxYXGZcdTAwMTHiq0PtNqi178HDmc7KhzWn0H2CTYtl2yxE53lcdTAwMWJcdTAwMTVUSbtFXCJPcWlcdTAwMDVcdTAwMTXjSFxisfMw9T12i5TrSkf07fB9XHUwMDA0V32zn5VNI/NiLWXS0kKx5JpXLJma11SVYtYpLsORgEec+vfAMc/O6lx1MDAxOd9AXHUwMDEyXzV+35pXXCKQ0qA7d5veuFx1MDAxOFx1MDAxMSXG45hcdTAwMDGhvNtcdTAwMTTvR1x1MDAxOP3w5e2hcV41j4LqtSku7CD30SD2vlx1MDAxNa+Cqlx1MDAwYiCw84j6jUGGXHUwMDEzd2wjXHUwMDBlw9qXXHUwMDE01S/8XCJnVCtGaTjUr39cdTAwMWNpXHUwMDA0+l+vsp70XHUwMDExWdJjSPlcdTAwMDRcdTAwMWOKnVx1MDAxN/K9tVwiw0lcdTAwMTiDSEXY4Vx1MDAxNqfVNZledugjXHUwMDE2Pmw4V3dcdTAwMTVQXHUwMDFi+v6hkVx1MDAwMLLMlFXHXzzxzltEXGJWxkNucTH8pWHbVdUv395cZsSJXHUwMDFi7SNaf+5ccolcdTAwMThTXHUwMDEyjWFfXHUwMDAzsN05auLzYuBcdTAwMTVHw3s4PFx1MDAxYvaKXHUwMDE2yTyA0ezmQ4J4XlxugVx1MDAwNETJXHQ0k3G+SbRcdTAwMWWZ2CVvnCNcYoe5VbS9WP090DzOXHUwMDA0MKVcZmmaXHUwMDE3Jk5Rs06Y1lx1MDAwYkzN/tlxO3um41x1MDAwNcOfnW5cdTAwMThcdTAwMTUtjNXe/H12XHSyLaXv81x1MDAwM1/AX1wiki1cdTAwMTCgUCBcdTAwMTa1ua9cdTAwMTF4OVx1MDAwNDLp5mDG80qJ4ShbxzRmUNFcdTAwMThcdTAwMTAm+EY0/qOh6Vx1MDAwMNB5XG5LkGeSzow7obJqQ4hRhuZcdTAwMTPhSFx1MDAxMYJBLtNcdTAwMTSKTMn6XHUwMDBmINDLkV9T0VOk5Vx1MDAxOFx1MDAwNVx1MDAxY61Fxlh+PFwi2Mu7zU9W2CA2pm+9XHUwMDFmSplcdTAwMDN5wjjFnCDAlcZV4kXOamqeOkfNr0RcdTAwMDAoX1x1MDAwYmNcdTAwMDKV6HP3PpOZT5JpuXdcdTAwMTWRXHSE4zGBIUXqUUFEXHUwMDE2iSRcdTAwMTjmUGJcbiFcdTAwMDFQ2ck5mba8JqDMiVx1MDAxNcu1b3VlgIn8XGZVwlx1MDAwZlZcYlf0gurwa93nyfBy9IVcdTAwMDbT/p+iP1OrO8WcRHXHw6pYnMZfWb57LZPqLvROIIAzquX51bgoz1x1MDAwNZ1t2Ka6Y/PjRtZcdTAwMTlcdTAwMTZccv5STKJ0Tqr01daVXHUwMDFkVGYgjVx1MDAxZp1W2bHhWams+1x1MDAxN5f9nFx1MDAxONHLcz60ZDNJ2Vx0oHRcdTAwMGKl4VMhSIWIc6pcdTAwMDXlXHUwMDExJIJgPq9SVlJzaVQvkOFSXHUwMDEwXHUwMDEwXHUwMDEySFx1MDAxYdabwzlpwncrKMgpJciVQZVgfio+mJ7LQVx1MDAxNpbXj5VatGNcdTAwMGXJvORxZZVwXHIs8lx1MDAxMsf6Q1x1MDAwZfKhXHUwMDA1e733PJOeXHUwMDA1iJAopbpcXLpcdTAwMTBLXHUwMDEzKzg5xkhNPFrdP3yofntiX1x1MDAwYk63MGic5OrlVlx1MDAwZlx1MDAxN75nW2HG/2JcYotUtK6Tn0jSj4vWX/FcXESHXHUwMDAxXHUwMDAzXHUwMDA0R2VYRyHC11x1MDAxNeKkz6JAr31YKHTbvcerg3Kr1SyPnHssXHUwMDE2XHUwMDA3euN4atKwyl9cdTAwMTBRRjiy7XBHWVx1MDAwYrhst0pcdTAwMThrUlxuVy9cdTAwMThd/jwyiuq4+d/or4cszVXwXHUwMDA1yEbzuYpwlzzlqV6bsW1Tn1x1MDAxYXzTOV4nyVC16oHlRFx1MDAxZuwkqVx1MDAwMNdNKjiWYUT1+Gxe4TVcdTAwMDVcdTAwMWNPNbxIuL7xYMnZXHUwMDA1qDAoZZrswnJHKZM8i79cdTAwMTOBiWTvevfWXHUwMDAzXHUwMDExXHUwMDFj7iWVm3FsQ+tBrozzY90t6Hx4OrBbYlDCld5K1uPzssvu+O9aXHUwMDAx5fHt3CrRxNJcdKH8RUlSXHUwMDE0vC1/ylx1MDAxOeVKzCbJjVaCtmCTIGFSQsxT7craulFSXHUwMDExXHUwMDE2fjujVGlZZuNNbdIraj1uk55cdTAwMDV8JtinXHUwMDE31u5rnldcdTAwMGXUc5s8//1Hy3wqLNKg40/YfzxcdTAwMWQhXHUwMDEzzPG0/fr06//RyOiSIn0=Worker Thread Pool CPU Cores Scheduler Queues steal on empty queue Victim Thief
CAF maintains a thread pool, in which every thread maintains its own queue of
"work," i.e., dispatching control flow into an actor. If an actor sends a
message to another actor, CAF schedules the recipient. Based on how the worker
threads plow through their work, there may be scenario where a thread runs out
of work and ends up with an empty queue. In this case, stealing kicks in. The
idle worker (thief ) picks an actor from the queue of another thread
(victim ) so that all threads keep churning away. This works very efficiently,
assuming that stealing is a rare event.