As of version 2.12.1.0
https://docs.yugabyte.com/preview/architecture/ has some information but too little about the actual implementation details.
The whole project is written in C++.
- master(s): provide metadata services and are involved in all kinds of metadata changes, manage the set of tservers, disitrbute tablets to tservers. There's a cluster of masters and RAFT is used to determine a leader. It seems that, in general, only the master leader is actively serving requests.
- tserver: "Tablet Server", provide access to data. Each tablet is served by multiple tservers which use RAFT to determine leader and follower status (for each tablet separately).
- Data storage: using DocDB which is a fork of rocksdb. DocDB is used inside of the tserver process to store actual data. It is also used inside of the masters to store metadata.
- Network traffic: uses RPC calls based on protobuf, the framing protocol sequentially runs single RPC cycles on a connection and is based on a Hadoop protocol (see https://github.com/yugabyte/yugabyte-db/blob/master/src/yb/rpc/README)