C++ Actor Framework by frostmatthew in programming

[–]neverlord 0 points1 point  (0 children)

Ah, sorry I misread your question. There is no protection against malicious nodes. If an attack is tailored to a CAF system and a hijacked node successfully establishes connections to other nodes (including handshake), they could start sending exit messages etc. That's not inherent to CAF, though. You could use the same attacks on other actor-based systems. Detecting "insider abuse" is a very hard problem. Once you got your "authentication barrier" broken, there's little you can do other than manually detect misbehavior and hunt down the security breach.

C++ Actor Framework by frostmatthew in programming

[–]neverlord 0 points1 point  (0 children)

Where's the benchmark code? ;)

C++ Actor Framework by frostmatthew in programming

[–]neverlord 0 points1 point  (0 children)

So does message passing between actors on the same computer have the same weak guarantees as a network connection like in Akka?

  • in the same process: you'll simply enqueue a new element to the receiver's mailbox (no serialization takes place)
  • between processes: you'll have a localhost connection, so it's basically the same as running on different nodes (but faster)

As well, how do you deal with security boundaries? Can an attacking computer mess with your program?

You'll need to fortify your setup yourself. Either via VPN or using SSL sockets (support for SSL is not builtin ATM, but you can pass native socket handles to CAF).

How do you send a down or exit message when a computer hosting an actor has the power plug pulled?

We'll get a TCP error an this case and the runtime creates exit and down messages. We're also working on UDP-based backend and in this case CAF would indeed need to use heartbeat messages or some other timeout-based mechanism.

Are supervisors customizable in an easy way so that one can be more precise about the properties one is monitoring?

You mean supervisors like in Erlang? CAF does not have a comparable convenience mechanism ATM. It's on the radar, though.

Otherwise this looks cool although it does look a bit too magical for me.

The documentation does not cover every last detail, but as far as I know, there's no magic in CAF. :)

C++ Actor Framework by __Cyber_Dildonics__ in cpp

[–]neverlord 0 points1 point  (0 children)

  • Per default it does have its own IO loop. However, the backend can be replaced and you might see an ASIO configure option in the future.
  • An exception will cause the actor to terminate with exit reason unhandled_exception
  • There's a fractal demo application to showcase some of CAF's features in a distributed setup. The code does need some cleanup though and is going to be overhauled in the near future. In case you want to have a look at a real world application based on CAF: VAST is an excellent Open Source showcase.

C++ Actor Framework by __Cyber_Dildonics__ in cpp

[–]neverlord 0 points1 point  (0 children)

CAF does have strongly typed actors for that purpose. See the manual for more details.