Skip to main content

Photon Architecture

The major goal of Photon is to handle concurrency and I/O (including file I/O and networking I/O).

architecture

Its components are:

  • Thread, vCPU, locks and sync primitives, event engines, task dispatching ...
  • Multiple IO wrappers: psync, posix_aio, libaio, io_uring
  • Multiple socket implementations: tcp (level-trigger/edge-trigger), unix-domain, zero-copy, libcurl, TLS support, etc.
  • High performance RPC client/server, HTTP client/server.
  • A POSIX-like filesystem abstraction and some implementations: local fs, http fs, fuse fs, e2fs, etc.
  • Common utilities: io-vector manipulation, resource pool, object cache, mem allocator, callback delegator, pre-compiled logging, lockless ring buffer, defer, range lock, throttle, etc.