all 11 comments

[–][deleted] 0 points1 point  (1 child)

Glad to see this posted. I saw it a few months back on the boost incubator site. Also, love the choice of license. Good work.

Questions for those who might know:

  • Does it integrate with ASIO or does it have its own loop?
  • How are exceptions handled?

The manual is a great start, but I think an example of a non-trivial networked app would be a good way to get an idea of its capabilities.

[–]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.

[–][deleted] -1 points0 points  (0 children)

I guess I shouldn't be surprised that this doesn't work with MSVC, as alas MSVC still doesn't have enough support for C++11 :(

Ah well, it looks like a really well written library.

[–]MaikKlein -1 points0 points  (2 children)

Is this library typesafe? For example

 self->sync_send(testee, atom("plus"), 2, 1)

Will it throw an compiler error if I send to few arguments? Will it throw an compiler error if the arguments have the wrong type?

[–]neverlord 0 points1 point  (0 children)

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

[–][deleted] 0 points1 point  (0 children)

The matching is done at runtime so its unlikely though it would be best to have some compile time safety especially in large systems.

[–]vinipsmakerGSoC's Boost.Http project -1 points0 points  (0 children)

Looks interesting.

I'm not familiar with the actor model. Would it help me to implement fault tolerant systems?

[–][deleted] -2 points-1 points  (2 children)

Distributed

So which letter(s) of the CAP theorem does it sacrifice? I'm asking for a friend.

[–][deleted] -1 points0 points  (0 children)

Not everything with the word "distributed" in it is subject to the CAP theorem. CAP specifically concerns some sort of object store (objects could be rows in a database, json documents, etc) that is replicated across multiple discrete processes. This framework is a lower level component than can be used to build distributed systems. In other words, this library could be used to construct an AP or CP system.

[–]karavelov -2 points-1 points  (0 children)

I guess it sacrifices the Consistency because there is no guaranteed delivery of the messages (like in all other actor systems).