This lecture gives a overview of the BGP implementation. BGP is FSM-based protocol that runs on TCP. It assumes independently administrated entities called AS (autonomous systems). BGP distinguishes the two kind of links (AS-AS and inner-AS), and these links run different sessions called eBGP and iBGP. It keeps track of multiple attributes (i.e. ASPATH, LOCAL_PREF, MED, and etc.) to select from multiple route records.
BGP focused on making the internet a fully decentralized system, allowing routes learned from multiple networks. It's design for reachability and scalability. Its damping (basically delay timer) feature helps to bring stability and protect from DoS attacks.
Since the protocol is designed for independently administrated networks, making it flexible using configuration parameters seems like natural thing to do. However, these parameters, along with the damping and how iBGP is organized, all seem pretty hacky. The paper wasn't quite clear on defining and showing consistency for the protocol. It suggests that there is probably a problem with determinacy. There is, as the author claims, still a lot of research for this and other areas of BGP.
Economic factors are a big part in BGP. It is designed to allow administrative domains (ISP's) to freely decide which routes to advertise or accept. This is really the essence of BGP, in that it overlays reachability over connectivity.
The paper overall was informative about real-world factors relating to protocol design but spent a little too much, i thought, on certain implementation details. It's well-complemented by the second paper, which gave a broader context and clearer motivation for BGP.