{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,8]],"date-time":"2025-12-08T22:32:37Z","timestamp":1765233157708,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":28,"publisher":"ACM","license":[{"start":{"date-parts":[[2021,8,18]],"date-time":"2021-08-18T00:00:00Z","timestamp":1629244800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2021,8,20]]},"DOI":"10.1145\/3468264.3473918","type":"proceedings-article","created":{"date-parts":[[2021,8,19]],"date-time":"2021-08-19T01:40:37Z","timestamp":1629337237000},"page":"1242-1252","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Automated code transformation for context propagation in Go"],"prefix":"10.1145","author":[{"given":"Adam","family":"Welc","sequence":"first","affiliation":[{"name":"Uber Technologies, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2021,8,18]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"Sameer Ajmani. 2014. Go Concurrency Patterns: Context. https:\/\/blog.golang.org\/context  Sameer Ajmani. 2014. Go Concurrency Patterns: Context. https:\/\/blog.golang.org\/context"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/115372.115320"},{"key":"e_1_3_2_1_3_1","unstructured":"Che Dan. [n.d.]. A GoMock Quick Start Guide. https:\/\/betterprogramming.pub\/a-gomock-quick-start-guide-71bee4b3a6f1  Che Dan. [n.d.]. A GoMock Quick Start Guide. https:\/\/betterprogramming.pub\/a-gomock-quick-start-guide-71bee4b3a6f1"},{"key":"e_1_3_2_1_4_1","volume-title":"Refactoring: Improving the Design of Existing Code","author":"Fowler Martin","year":"2018","unstructured":"Martin Fowler . 2018 . Refactoring: Improving the Design of Existing Code . Addison-Wesley Professional . Martin Fowler. 2018. Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional."},{"key":"e_1_3_2_1_5_1","unstructured":"Andrew Gerrand. 2013. go fmt your code. https:\/\/blog.golang.org\/go-fmt-your-code  Andrew Gerrand. 2013. go fmt your code. https:\/\/blog.golang.org\/go-fmt-your-code"},{"key":"e_1_3_2_1_6_1","unstructured":"Massimiliano Ghilardi. 2018. gls. https:\/\/github.com\/cosmos72\/gls  Massimiliano Ghilardi. 2018. gls. https:\/\/github.com\/cosmos72\/gls"},{"key":"e_1_3_2_1_7_1","unstructured":"Go Team. [n.d.]. Command eg. https:\/\/godoc.org\/golang.org\/x\/tools\/cmd\/eg  Go Team. [n.d.]. Command eg. https:\/\/godoc.org\/golang.org\/x\/tools\/cmd\/eg"},{"key":"e_1_3_2_1_8_1","unstructured":"Go Team. [n.d.]. Command gofmt. https:\/\/golang.org\/cmd\/gofmt  Go Team. [n.d.]. Command gofmt. https:\/\/golang.org\/cmd\/gofmt"},{"key":"e_1_3_2_1_9_1","unstructured":"Go Team. [n.d.]. Command gorename. https:\/\/godoc.org\/golang.org\/x\/tools\/cmd\/gorename  Go Team. [n.d.]. Command gorename. https:\/\/godoc.org\/golang.org\/x\/tools\/cmd\/gorename"},{"key":"e_1_3_2_1_10_1","unstructured":"Go Team. [n.d.]. gomock. https:\/\/github.com\/golang\/mock  Go Team. [n.d.]. gomock. https:\/\/github.com\/golang\/mock"},{"key":"e_1_3_2_1_11_1","unstructured":"Go Team. [n.d.]. Package context. https:\/\/golang.org\/pkg\/context\/  Go Team. [n.d.]. Package context. https:\/\/golang.org\/pkg\/context\/"},{"key":"e_1_3_2_1_12_1","unstructured":"Go Team. 2018. Why is there no goroutine ID? https:\/\/golang.org\/doc\/faq#no_goroutine_id  Go Team. 2018. Why is there no goroutine ID? https:\/\/golang.org\/doc\/faq#no_goroutine_id"},{"key":"e_1_3_2_1_13_1","unstructured":"Gopher Guides. 2019. Understanding init in Go. https:\/\/www.digitalocean.com\/community\/tutorials\/understanding-init-in-go  Gopher Guides. 2019. Understanding init in Go. https:\/\/www.digitalocean.com\/community\/tutorials\/understanding-init-in-go"},{"key":"e_1_3_2_1_14_1","unstructured":"Gopher Guides. 2019. Understanding the GOPATH. https:\/\/www.digitalocean.com\/community\/tutorials\/understanding-the-gopath  Gopher Guides. 2019. Understanding the GOPATH. https:\/\/www.digitalocean.com\/community\/tutorials\/understanding-the-gopath"},{"key":"e_1_3_2_1_15_1","unstructured":"Uday Hiwarale. [n.d.]. Variadic functions in Go. https:\/\/medium.com\/rungo\/variadic-function-in-go-5d9b23f4c01a  Uday Hiwarale. [n.d.]. Variadic functions in Go. https:\/\/medium.com\/rungo\/variadic-function-in-go-5d9b23f4c01a"},{"key":"e_1_3_2_1_16_1","unstructured":"David Hubbell. [n.d.]. Top 4 Pros and Cons of Microservices Architecture. https:\/\/www.spkaa.com\/blog\/top-4-pros-cons-microservices-architecture\/  David Hubbell. [n.d.]. Top 4 Pros and Cons of Microservices Architecture. https:\/\/www.spkaa.com\/blog\/top-4-pros-cons-microservices-architecture\/"},{"key":"e_1_3_2_1_17_1","unstructured":"JetBrains. [n.d.]. Goland. https:\/\/www.jetbrains.com\/go  JetBrains. [n.d.]. Goland. https:\/\/www.jetbrains.com\/go"},{"key":"e_1_3_2_1_18_1","unstructured":"JetBrains. [n.d.]. Introduce Parameter. https:\/\/www.jetbrains.com\/help\/rider\/Refactorings__Introduce_Parameter.html  JetBrains. [n.d.]. Introduce Parameter. https:\/\/www.jetbrains.com\/help\/rider\/Refactorings__Introduce_Parameter.html"},{"key":"e_1_3_2_1_19_1","unstructured":"JetBrains. [n.d.]. Rider. https:\/\/www.jetbrains.com\/rider  JetBrains. [n.d.]. Rider. https:\/\/www.jetbrains.com\/rider"},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2004.1265817"},{"key":"e_1_3_2_1_21_1","unstructured":"Anna Monus. 2018. What are microservices? The pros cons and how they work. https:\/\/raygun.com\/blog\/what-are-microservices  Anna Monus. 2018. What are microservices? The pros cons and how they work. https:\/\/raygun.com\/blog\/what-are-microservices"},{"key":"e_1_3_2_1_22_1","unstructured":"JT Olio. 2018. gls. https:\/\/github.com\/jtolds\/gls  JT Olio. 2018. gls. https:\/\/github.com\/jtolds\/gls"},{"key":"e_1_3_2_1_23_1","unstructured":"Good Rebels. 2018. To go or not to go micro: the pros and cons of microservices. https:\/\/medium.com\/@goodrebels\/to-go-or-not-to-go-micro-the-pros-and-cons-of-microservices-7967418ff06  Good Rebels. 2018. To go or not to go micro: the pros and cons of microservices. https:\/\/medium.com\/@goodrebels\/to-go-or-not-to-go-micro-the-pros-and-cons-of-microservices-7967418ff06"},{"key":"e_1_3_2_1_24_1","volume-title":"Mike Burrows, Pat Stephenson, Manoj Plakal, Donald Beaver, Saul Jaspan, and Chandan Shanbhag.","author":"Sigelman Benjamin H.","year":"2010","unstructured":"Benjamin H. Sigelman , Luiz Andr\u00e9 Barroso , Mike Burrows, Pat Stephenson, Manoj Plakal, Donald Beaver, Saul Jaspan, and Chandan Shanbhag. 2010 . Dapper, a Large-Scale Distributed Systems Tracing Infrastructure . https:\/\/research.google.com\/archive\/papers\/dapper-2010-1.pdf Benjamin H. Sigelman, Luiz Andr\u00e9 Barroso, Mike Burrows, Pat Stephenson, Manoj Plakal, Donald Beaver, Saul Jaspan, and Chandan Shanbhag. 2010. Dapper, a Large-Scale Distributed Systems Tracing Infrastructure. https:\/\/research.google.com\/archive\/papers\/dapper-2010-1.pdf"},{"key":"e_1_3_2_1_25_1","unstructured":"Tyler Stillwater. 2015. gls. https:\/\/github.com\/tylerb\/gls  Tyler Stillwater. 2015. gls. https:\/\/github.com\/tylerb\/gls"},{"key":"e_1_3_2_1_26_1","unstructured":"Twitter. [n.d.]. Zipkin. https:\/\/blog.twitter.com\/engineering\/en_us\/a\/2012\/distributed-systems-tracing-with-zipkin.html  Twitter. [n.d.]. Zipkin. https:\/\/blog.twitter.com\/engineering\/en_us\/a\/2012\/distributed-systems-tracing-with-zipkin.html"},{"key":"e_1_3_2_1_27_1","unstructured":"Uber. [n.d.]. TChannel. https:\/\/www.jetbrains.com\/help\/rider\/Refactorings__Introduce_Parameter.html  Uber. [n.d.]. TChannel. https:\/\/www.jetbrains.com\/help\/rider\/Refactorings__Introduce_Parameter.html"},{"key":"e_1_3_2_1_28_1","unstructured":"Uber. 2019. zap. https:\/\/github.com\/uber-go\/zap  Uber. 2019. zap. https:\/\/github.com\/uber-go\/zap"}],"event":{"name":"ESEC\/FSE '21: 29th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering"],"location":"Athens Greece","acronym":"ESEC\/FSE '21"},"container-title":["Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3468264.3473918","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3468264.3473918","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:17:23Z","timestamp":1750191443000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3468264.3473918"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,8,18]]},"references-count":28,"alternative-id":["10.1145\/3468264.3473918","10.1145\/3468264"],"URL":"https:\/\/doi.org\/10.1145\/3468264.3473918","relation":{},"subject":[],"published":{"date-parts":[[2021,8,18]]},"assertion":[{"value":"2021-08-18","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}