Awesome Software Architecture

repository·main·Indexed 11 days ago

https://github.com/mehdihadeli/awesome-software-architecture

A curated collection of high-quality articles and resources on software architecture, patterns, and principles. It covers architectural styles such as Clean, Hexagonal, Onion, and Vertical Slice Architecture, as well as Domain-Driven Design (DDD), Event-Driven Architecture, Microservices, CQRS, and the Actor Model. The resource includes guides on API Gateways (Ambassador, Kong, Ocelot), observability stacks (ELK, EFK, Loki), and distributed application tools like Dapr and CAP.

Tokens
112.5K
Snippets
185
Records
709
Agent score
94%

What's inside Awesome Software Architecture

  1. Overview of Awesome Software Architecture

    main
    Awesome Software Architecture is a curated collection of articles and resources designed to help developers learn and practice software architecture, patterns, and principles. The repository serves as a centralized, categorized hub for high-quality learning materials covering topics such as Clean Architecture, Event-Driven Architecture, Domain-Driven Design, and more.
  2. Overview of Project Tye for Microservices

    main
    Project Tye is a tool designed to simplify the development, testing, and deployment of microservices and distributed applications. It provides a local orchestrator to facilitate easier microservice development and offers the capability to deploy these services to Kubernetes with minimal configuration. It is particularly useful for .NET developers working with distributed systems.
  3. Overview of Steeltoe .NET Core Components

    main

    Steeltoe provides a set of .NET Core components designed to help build cloud-native microservices. It enables developers to implement essential microservice patterns without being locked into a specific cloud platform. Key capabilities include:

    • CircuitBreaker: Resilience patterns to prevent cascading failures.
    • Configuration: Centralized configuration management.
    • Connectors: Integration with cloud-native services.
    • Discovery: Service discovery mechanisms.
    • Logging: Structured logging for distributed systems.
    • Management: Operational management and monitoring.
    • Security: Security implementations for microservices.
  4. Explore AI and LLM libraries

    main

    This repository provides a curated list of libraries and tools for working with Artificial Intelligence and Large Language Models (LLMs). Key categories include:

    • Model Inference & Frameworks: Tools like llama.cpp (C/C++ port of LLaMA), ollama (local Llama 2/LLM runner), transformers (HuggingFace state-of-the-art ML), and unsloth (fast fine-tuning for Llama 3.1, Mistral, etc.).
    • Agentic AI & Orchestration: Frameworks like langchain (context-aware reasoning), microsoft/autogen (agentic programming), microsoft/semantic-kernel (integrating LLMs into apps), and Auto-GPT (autonomous GPT-4).
    • Local & Private AI: Solutions for running models locally or privately, such as LocalAI (OpenAI-compatible local API), privateGPT (private document interaction), and jan (offline ChatGPT alternative).
    • Specialized Tools: repopack (packs repositories into AI-friendly files), markitdown (converts documents to Markdown), and screenshot-to-code (converts screenshots to HTML/Tailwind/JS).
  5. Explore Cloud Native learning resources

    main
    The cloud-native.md documentation provides a curated list of external resources for learning about Cloud Native architecture, including training materials, articles, videos, and books. Use these resources to understand the definitions, candidate applications, and reference architectures for cloud-native digital enterprises.
  6. Explore Microservices Architecture topics

    main

    The awesome-software-architecture repository provides a curated collection of documentation regarding Microservices. Key areas of study include:

    • Core Concepts: Introduction to microservices, benefits, drawbacks, and characteristics.
    • Communication: Patterns and protocols (Synchronous vs. Asynchronous, REST vs. Message-based, Service Buses).
    • UI Patterns: Composite UI (Server-side vs. Client-side composition).
    • Design: Defining Service Boundaries using Domain-Driven Design (DDD) and Bounded Contexts.
    • Testing: Strategies for individual services and inter-service interactions.
    • API Gateways: Implementation of single entry points, including specific guides for Ambassador, Kong, and Ocelot.
    • Observability: Monitoring, distributed tracing, diagnostics, logging, and the use of Correlation IDs to track requests across distributed systems.