World Congress 2021 • Jun 28, 2021

Concurrency with Go

Frank Müller

Stop fighting error-prone threads and mutual exclusion locks. Go's native concurrency primitives let you build elegant, thread-safe architectures by communicating across channels instead of sharing memory.

Pause
Mute Enter Fullscreen
#1 about 4 min

Modeling software architecture on natural concurrent ecosystems

Approaching system design by observing how independent natural agents interact and co-exist.

#2 about 4 min

Evolution of multi-core hardware and computing processes

Utilizing modern multi-core processors efficiently requires rethinking thread-based abstractions.

#3 about 3 min

Encapsulating state for sequential processing via messages

Building reliable applications relies on isolating state manipulation and communicating through fixed interfaces.

#4 about 2 min

Understanding concurrency against parallelism in application execution

Differentiating simultaneous execution from the composition of independently executing architectural processes.

#5 about 2 min

Historical concurrency models from actors to sequential processes

Applying established theories like the actor model and sequential communicating processes to modern programming concepts.

#6 about 13 min

Patterns for structurally organizing complex concurrent architecture

Structuring complex systems leveraging service providers, worker pools, and event managers.

#7 about 4 min

Multi paradigm language design principles in Go

Leveraging implicit interfaces and function types alongside traditional imperative language structures.

#8 about 5 min

Orchestrating concurrent routines with channels and goroutines

Organizing lightweight execution environments utilizing typed, synchronous, and buffered communication primitives.

#9 about 4 min

Launching background execution contexts utilizing anonymous functions

Spawning background operations while maintaining strict encapsulation of arguments and local state.

#10 about 4 min

Coordinating execution completion across multiple active goroutines

Utilizing wait groups to synchronize caller execution with the successful completion of deferred background jobs.

#11 about 3 min

Streaming and processing continuous data via directional channels

Enforcing data flow boundaries and safely terminating operations by explicitly closing communication streams.

#12 about 4 min

Chaining sequential processors through piped concurrent transformations

Cascading specific channel closures to gracefully shut down multi-stage asynchronous processing flows.

#13 about 5 min

Implementing robust concurrent services for encapsulated state management

Maintaining private business logic and synchronous access using structured backend routines and context handling.

#14 about 4 min

Integrating the actor model to simplify complex service operations

Passing logic via action channels to streamline process interactions and reduce boilerplate synchronization code.

#15 about 2 min

Embracing abstract design principles for elastic software topologies

Adopting flexible application designs to elegantly manage scaling resources and dynamic concurrent workloads.

Matching moments

2:31 min

Introduction to Go concurrency and parallelism

Rick Rackow Rick Rackow · World Congress 2026 Europe

48 sec

Key takeaways on Go container performance optimization

Rick Rackow Rick Rackow · World Congress 2026 Europe

3:21 min

Introducing goroutines and the Go scheduler

Rick Rackow Rick Rackow · World Congress 2026 Europe

4:00 min

Sequential execution versus concurrent execution in Go

Rick Rackow Rick Rackow · World Congress 2026 Europe

4:24 min

Leveraging the Go programming language for scalable infrastructure

Natalie Pistunovich · LIVE

2:03 min

Building scalable applications with reactive programming

Josh Long · World Congress 2022