What are Teku's major components? What databases did it consider and decide on?
Are there architectural elements and market goals that are particularly differentiated from how other beacon chain clients are designed and implemented?
Ethereum Stack Exchange is a question and answer site for users of Ethereum, the decentralized application platform and smart contract enabled blockchain. It only takes a minute to sign up.Sign up to join this community
The recording is poor and it's a bit out of date now, but the this talk gives an intro to the Teku architecture: https://www.youtube.com/watch?v=1PHZHpVPLk4
Generally the major components of ETH2 clients are all quite similar because they all need to do roughly the same things. Teku's focus is primarily on enterprise deployments so it's designed to support things like external slashing protection and signing services (particularly useful for staking as a service setups). Teku also uses an event bus style architecture (refined a bit with EventChannels so it's easier to follow where events are going) which gives it it's own unique feel for how the different components interact.
In terms of databases, originally Teku used MapDb but it's performance isn't great and we've now moved to RocksDB. There will be further improvements made to the storage layer over time which may include keeping non-finalised data in RocksDB but finalised data in something else.