awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
tmrts avatar

tmrts/go-patterns

0
View on GitHub↗
27,726 stars·2,336 forks·Go·apache-2.0·8 viewstmrts.com/go-patterns↗

Go Patterns

This project serves as a technical reference and guide for implementing idiomatic software design patterns within the Go programming language. It provides a curated collection of architectural blueprints and coding strategies designed to help developers organize complex codebases into maintainable, modular components.

The repository covers a broad spectrum of software engineering practices, including creational, structural, and behavioral design patterns. It emphasizes the use of language-specific idioms to manage object instantiation, decouple component interactions, and extend functionality through proxies and decorators. Additionally, the collection addresses system-level concerns by detailing strategies for managing parallel execution, resource synchronization, and asynchronous messaging.

Beyond structural organization, the resource includes implementations for maintaining system stability and observability. It demonstrates how to apply resilience patterns, such as circuit breakers, to prevent cascading failures and how to monitor execution performance to ensure consistent application responsiveness. The content is structured as a reference for applying these patterns to build modular and efficient software systems.

Features

  • Awesome List - A community-curated directory that catalogs and links out to other open-source projects, rather than a standalone tool you run yourself.
  • Software Design Patterns - Provides a comprehensive collection of structural, creational, and behavioral design patterns tailored for robust Go application development.
  • Concurrency Patterns - Implements idiomatic concurrency patterns and synchronization strategies for managing parallel execution and system stability in Go.
  • Idiomatic Coding Standards - Provides standard coding practices and language-specific idioms to write consistent and efficient code.
  • Software Architecture Guides - Offers architectural blueprints and strategies for organizing complex codebases into maintainable, modular components using idiomatic language features.
  • Circuit Breakers - Prevents cascading failures and resource exhaustion by using circuit breakers to handle request errors gracefully.
  • Architectural Best Practices - Curates structural and behavioral strategies to maintain consistent architectural standards and code quality across complex systems.
  • Concurrency Primitives - Provides idiomatic patterns for managing asynchronous tasks and multi-threaded execution using language-native primitives.
  • Concurrency Synchronization Primitives - Manages parallel execution and resource access through synchronization primitives to prevent data conflicts.
  • Functional Options - Uses variadic functions to configure complex objects with sensible defaults and flexible overrides.
  • Resilience Engineering - Implements resilience strategies like circuit breakers to handle errors gracefully and prevent cascading failures.
  • Resilience Patterns - Wraps service interactions in state-aware controllers to prevent cascading failures during high latency.
  • Programming Foundations - Collection of idiomatic design patterns for Go developers.
  • Programming Language Patterns - Curated list of design patterns and idioms for Go.
  • Programming Languages - Design patterns and idioms for Go.
  • Learning and Reference - Curated list of Go design patterns.
  • Structural Patterns - Extends functionality and controls access to objects using decorators and proxies to maintain architectural boundaries.
  • Behavioral Design Patterns - Manages communication and state transitions between components using observers and strategies.
  • Component Decoupling Patterns - Separates business logic from implementations using strict interface boundaries to ensure modularity.
  • Configuration Overrides - Defines flexible interfaces that allow users to override specific behaviors through idiomatic parameters.
  • Creational Design Patterns - Constructs complex objects using builders and factories to centralize instantiation logic.
  • Messaging Patterns - Routes data between independent components using publish-subscribe and fan-out patterns for reliable asynchronous communication.
  • Factory Pattern Interfaces - Implements standardized interfaces to abstract object instantiation and manage resource lifecycles.
  • Structural - Extends object functionality by intercepting method calls through intermediary layers.
  • Concurrent Execution Managers - Manages parallel operations and resource access using semaphores and generators to improve system throughput.
  • Application Performance Profiling - Measures and logs function processing times to identify bottlenecks and track application speed.

Star history

Star history chart for tmrts/go-patternsStar history chart for tmrts/go-patterns

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Go Patterns

Similar open-source projects, ranked by how many features they share with Go Patterns.
  • faif/python-patternsfaif avatar

    faif/python-patterns

    42,801View on GitHub↗

    This project is a comprehensive collection of software design patterns implemented in Python. It serves as a reference for architectural, behavioral, creational, and structural patterns to guide the organization of Python applications. The collection covers behavioral strategies for managing object communication and state, creational techniques for controlling object instantiation, and structural methods for composing classes and objects into flexible hierarchies. It also includes architectural references for system-wide structuring, such as multi-tier architectures and blackboard models. Th

    Pythondesign-patternsidiomspython
    View on GitHub↗42,801
  • iluwatar/java-design-patternsiluwatar avatar

    iluwatar/java-design-patterns

    94,123View on GitHub↗

    This repository serves as a comprehensive educational collection of industry-standard software design patterns and architectural principles implemented in Java. It functions as a structured reference for developers to study and apply proven strategies for building maintainable, object-oriented systems. The project acts as a knowledge base for software engineering, offering a curated set of programming heuristics and best practices. By providing ready-to-use implementations of standard design patterns, it enables developers to address common programming challenges and improve code modularity t

    Javaawesome-listdesign-patternshacktoberfest
    View on GitHub↗94,123
  • domnikl/designpatternsphpdomnikl avatar

    domnikl/DesignPatternsPHP

    22,188View on GitHub↗

    DesignPatternsPHP is a reference collection of software architecture patterns implemented in PHP 8. It provides a guide for object-oriented programming through sample code demonstrating creational, structural, and behavioral design patterns. The project includes reference implementations for common patterns such as factories, builders, singletons, adapters, bridges, and proxies. Each implementation is accompanied by a PHPUnit test suite to verify that the patterns behave correctly and produce expected logical outcomes. The codebase covers a broad range of architecture capabilities, including

    PHP
    View on GitHub↗22,188
  • geniusvjr/learningnotesGeniusVJR avatar

    GeniusVJR/LearningNotes

    13,145View on GitHub↗

    LearningNotes is a technical knowledge base and engineering study guide focused on Android framework internals, system architecture, and mobile performance optimization. It serves as a reference for analyzing the Android boot sequence, process bootstrapping, and system service initialization. The project provides detailed guides on mobile performance, including strategies for reducing memory footprints, identifying memory leaks, and optimizing image decoding. It further covers Android inter-process communication using AIDL and the Binder kernel driver, as well as software architecture manuals

    View on GitHub↗13,145
See all 30 alternatives to Go Patterns→

Frequently asked questions

What does tmrts/go-patterns do?

This project serves as a technical reference and guide for implementing idiomatic software design patterns within the Go programming language. It provides a curated collection of architectural blueprints and coding strategies designed to help developers organize complex codebases into maintainable, modular components.

What are the main features of tmrts/go-patterns?

The main features of tmrts/go-patterns are: Awesome List, Software Design Patterns, Concurrency Patterns, Idiomatic Coding Standards, Software Architecture Guides, Circuit Breakers, Architectural Best Practices, Concurrency Primitives.

What are some open-source alternatives to tmrts/go-patterns?

Open-source alternatives to tmrts/go-patterns include: faif/python-patterns — This project is a comprehensive collection of software design patterns implemented in Python. It serves as a reference… iluwatar/java-design-patterns — This repository serves as a comprehensive educational collection of industry-standard software design patterns and… domnikl/designpatternsphp — DesignPatternsPHP is a reference collection of software architecture patterns implemented in PHP 8. It provides a… geniusvjr/learningnotes — LearningNotes is a technical knowledge base and engineering study guide focused on Android framework internals, system… me115/design_patterns — This project is an object-oriented architecture reference and software design patterns guide. It provides a collection… kamranahmedse/design-patterns-for-humans — This project is a comprehensive educational resource designed to help developers master object-oriented design and…