6 links
tagged with all of: go + concurrency
Click any tag below to further narrow down your results
Links
Since adopting Go in 2016, American Express has gained valuable insights into its performance, efficiency, and scalability. Key learnings include improved dependency management with Go Modules, the challenges of concurrency, the importance of training for idiomatic Go, the establishment of standardized frameworks, and fostering an internal community to enhance collaboration and innovation.
Go 1.25 introduces container-aware GOMAXPROCS defaults that improve the default behavior for applications running in container environments, particularly by adjusting GOMAXPROCS based on CPU limits set by orchestration platforms like Kubernetes. This change aims to reduce throttling impacts on tail latency and enhance production readiness by aligning Go's concurrency model with container resource management.
The article discusses common mistakes made by developers when using the Go programming language. It highlights pitfalls related to concurrency, error handling, and performance optimization that can lead to inefficient code. Understanding these mistakes can help programmers improve their skills and write more effective Go applications.
Turso has rewritten significant portions of their API using Go to enhance performance and maintainability. This transition aims to leverage Go's efficiency and concurrency features, ultimately improving the overall experience for developers and users alike. The blog post details the motivations behind this decision and the expected benefits.
Go's data race detector has a limitation that can lead to missed data races in code, particularly when mutexes are used. The article illustrates a scenario where a race condition occurs due to an unguarded increment in a concurrent environment, which the race detector fails to detect under certain execution orders. Understanding the detector's boundaries is crucial for ensuring thread safety in Go applications.
The article introduces the Reactive Programming paradigm as an enhancement to Go's capabilities in concurrent applications, particularly for event-driven systems. It highlights the limitations of using Goroutines and channels for complex data processing pipelines and presents the "ro" package as a cleaner, more maintainable alternative that simplifies the creation of reactive data streams. The author also compares it to existing libraries like RxGo, emphasizing the advantages of the new approach.