Discussion summary

FoundationDB's Flow introduces actor-based concurrency in C++11, but lacks widespread professionalization and documentation. Discussions highlight debates on concurrency models like coroutines versus actors, with some considering the approach outdated.

What the discussion says

  • Some believe coroutines are better suited than actor models for modern C++ concurrency.
  • There is criticism that FoundationDB's documentation and website are lacking.
  • Others argue that actor-based models like Flow are still relevant despite newer concurrency features.
It's weird that Apple, Snowflake, and others haven't invested much in docs or website.
Dave_Rosenthal
Coroutines aren't great, even C++26 avoids them for concurrency.
mgaunard

Comments

Hacker News

Why has FoundationDB not been professionalised? Better website, better docs, official GUI?

Is Apple responsible for preventing its wider uptake? Or alternative databases stronger?

by khurs

Great Q--it's weird that Apple, Snowflake, and the other big contributors have put essentially zero calories into documentation/website/etc.

There has been some movement lately, though. I'm not sure who exactly to thank, but "the community" created a new unofficial resource for getting going with FoundationDB: https://foundationdb.vercel.app/7.3/

by Dave_Rosenthal

Because it converts all normal DBA tasks into development tasks. If this fits your org (and at huge scale it is more likely) then that's fine, but for small/mid/growth places that can be a PITA.

There does seem to be more effort going into an SQL layer, but it's very hard to know what the state of layer dev and direction is these days, especially if you're not located near core devs.

by fidotron

This looks kind of outdated, especially since we are on C++23 as latest approved standard, and co-routines would be a better approach since C++20.

Also how is the supposed Swift rewrite going on?

by pjmlp

Just because coroutines exist doesn’t mean everything should use them for concurrency.

Why would it be better? It’s pretty easy to set up threads in general.

by hiyfsch

Agree that the code examples look like communicating sequential processes (CSP) and/or async/await-style concurrency (i.e. co-routines in C++). To me this is not "Actors" at all. Actors don't "wait", they receive and send messages, and optionally specify the behavior for handling the next message.

by RossBencina

Coroutines aren't great, even C++26 is explicitly avoiding them for its foundational concurrency model.

In any case a good concurrency library doesn't need more than C++14.

by mgaunard

Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Why has FoundationDB not been professionalised? Better website, better docs, official GUI?

    Is Apple responsible for preventing its wider uptake? Or alternative databases stronger?

    by khurs
  • Great Q--it's weird that Apple, Snowflake, and the other big contributors have put essentially zero calories into documentation/website/etc.

    There has been some movement lately, though. I'm not sure who exactly to thank, but "the community" created a new unofficial resource for getting going with FoundationDB: https://foundationdb.vercel.app/7.3/

    by Dave_Rosenthal
  • Because it converts all normal DBA tasks into development tasks. If this fits your org (and at huge scale it is more likely) then that's fine, but for small/mid/growth places that can be a PITA.

    There does seem to be more effort going into an SQL layer, but it's very hard to know what the state of layer dev and direction is these days, especially if you're not located near core devs.

    by fidotron
  • by jen20
  • Thanks! Macroexpanded:

    Flow: Actor-based language for C++, used by FoundationDB - https://news.ycombinator.com/item?id=46191763 - Dec 2025 (53 comments)

    by dang
  • This looks kind of outdated, especially since we are on C++23 as latest approved standard, and co-routines would be a better approach since C++20.

    Also how is the supposed Swift rewrite going on?

    by pjmlp
  • Just because coroutines exist doesn’t mean everything should use them for concurrency.

    Why would it be better? It’s pretty easy to set up threads in general.

    by hiyfsch
  • Agree that the code examples look like communicating sequential processes (CSP) and/or async/await-style concurrency (i.e. co-routines in C++). To me this is not "Actors" at all. Actors don't "wait", they receive and send messages, and optionally specify the behavior for handling the next message.
    by RossBencina
  • Coroutines aren't great, even C++26 is explicitly avoiding them for its foundational concurrency model.

    In any case a good concurrency library doesn't need more than C++14.

    by mgaunard
  • by jwolfe

Related stories