{"id":475,"date":"2026-06-30T21:57:06","date_gmt":"2026-06-30T19:57:06","guid":{"rendered":"https:\/\/www.giral.do\/wp-en\/sem-categoria\/an-oral-history-of-bank-python\/"},"modified":"2026-06-30T21:57:06","modified_gmt":"2026-06-30T19:57:06","slug":"an-oral-history-of-bank-python","status":"publish","type":"post","link":"http:\/\/www.giral.do\/wp-en\/softwarearchitecture\/an-oral-history-of-bank-python\/","title":{"rendered":"An oral history of Bank Python"},"content":{"rendered":"<p>\ud835\ude09\ud835\ude22\ud835\ude24\ud835\ude2c \ud835\ude35\ud835\ude30 \ud835\ude09\ud835\ude22\ud835\ude34\ud835\ude2a\ud835\ude24\ud835\ude34: go read Cal Paterson&#8217;s &#8220;An oral history of Bank Python&#8221;. It describes a class of software systems that run inside large investment banks, and it is a instructive case study on software architecture. You will probable start reading and thinking &#8220;wow, this does not seem right&#8221;. Until you realize the constraints that produced them.<\/p>\n<p>Every system runs on limits, whether you name them or not, what&#8217;s allowed to change independently, what has to stay coupled, what the system will simply refuse to do, what trade-off you&#8217;re accepting today so you don&#8217;t have to relitigate it tomorrow. Good architecture isn&#8217;t the absence of constraints. It&#8217;s choosing the right ones, early, on purpose.<\/p>\n<p>https:\/\/calpaterson.com\/bank-python.html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud835\ude09\ud835\ude22\ud835\ude24\ud835\ude2c \ud835\ude35\ud835\ude30 \ud835\ude09\ud835\ude22\ud835\ude34\ud835\ude2a\ud835\ude24\ud835\ude34: go read Cal Paterson&#8217;s &#8220;An oral history of Bank Python&#8221;. It describes a class of software systems that run inside large investment banks, and it is a instructive case study on software architecture. You will probable start &hellip; <a href=\"http:\/\/www.giral.do\/wp-en\/softwarearchitecture\/an-oral-history-of-bank-python\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,21,22],"tags":[],"class_list":["post-475","post","type-post","status-publish","format-standard","hentry","category-softwarearchitecture","category-softwareengineering","category-systemdesign"],"_links":{"self":[{"href":"http:\/\/www.giral.do\/wp-en\/wp-json\/wp\/v2\/posts\/475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.giral.do\/wp-en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.giral.do\/wp-en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.giral.do\/wp-en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.giral.do\/wp-en\/wp-json\/wp\/v2\/comments?post=475"}],"version-history":[{"count":0,"href":"http:\/\/www.giral.do\/wp-en\/wp-json\/wp\/v2\/posts\/475\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.giral.do\/wp-en\/wp-json\/wp\/v2\/media?parent=475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.giral.do\/wp-en\/wp-json\/wp\/v2\/categories?post=475"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.giral.do\/wp-en\/wp-json\/wp\/v2\/tags?post=475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}