I'm not sure exactly what you want to know about the architecture, but at a high level ChromeDriver implements the WebDriver protocol, which is a REST-like interface defined
here. WebDriver clients communicate with ChromeDriver by sending HTTP requests. ChromeDriver then communicates with the browser through the DevTools remote debugging interface, which is a WebSockets interface described
here.
Most of the code is under the src/chrome/test/chormedriver directory. The main function is in
chromedriver_server.cc, which sets up an HttpServer that responds to each HTTP request. If you want to follow the code for each WebDriver command, you can start at
http_handler.cc, which contains a mapping from each WebDriver command to the C++ function that implements it. The best way to familiarize yourself with the code is to pick a command and follow what it does starting from http_handler.cc.
Hope this helps.
Sam.