# omerkck41/omerkckarchitecture architecture

> Architecture diagram of the GitHub repository omerkck41/omerkckarchitecture, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/omerkck41/omerkckarchitecture
- Repository: https://github.com/omerkck41/omerkckarchitecture

## Overview

Kck is an opt-in .NET modular framework: applications compose abstractions, technology-specific providers, and hosting bundles. The typical workflow is to configure a Web API or worker, route a request or scheduled job through framework services, and persist data or invoke integrations. Persistence, domain events, security, caching, and the broader provider catalog are distinct capability branches. The README and sampled template show composition and persistence setup; unsampled provider internals are represented only at the documented capability level.

Main entry points: [`src/Providers/Kck.Persistence.EntityFramework/KckPersistenceBuilder.cs`](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Persistence.EntityFramework/KckPersistenceBuilder.cs) (EF persistence), [`src/Providers/Kck.Pipeline.Mediator/KckMediatorPipelineBuilder.cs`](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Pipeline.Mediator/KckMediatorPipelineBuilder.cs) (Pipeline builder), [`src/Kck.Templates/content/Kck.WebApi/src/KckWebApiTemplate.Api/Data/AppDbContext.cs`](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Kck.Templates/content/Kck.WebApi/src/KckWebApiTemplate.Api/Data/AppDbContext.cs) (Template DbContext), [`src/Providers/Kck.Search.Elasticsearch/ElasticsearchSearchService.cs`](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Search.Elasticsearch/ElasticsearchSearchService.cs) (Search provider)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_hosting["Hosting and composition"]
  node_webbundle["Web API bundle"]
  node_workerbundle["Worker bundle"]
  node_minimalbundle["Minimal API bundle"]
end

subgraph group_request["Request processing"]
  node_pipeline["Mediator pipeline<br/>[CachingBehavior.cs]"]
  node_pipelinebuilder["Pipeline builder"]
  node_core["Core contracts"]
end

subgraph group_data["Persistence and events"]
  node_persistencecontracts["Persistence contracts<br/>[IUnitOfWork.cs]"]
  node_ef["EF persistence"]
  node_templatecontext[("Template DbContext<br/>[AppDbContext.cs]")]
  node_domainhandlers["Domain event handlers"]
end

subgraph group_integrations["Provider integrations"]
  node_eventbus["Event bus<br/>[IEventBus.cs]"]
  node_filestorage["File storage"]
  node_search["Search provider"]
  node_messaging["Email providers"]
  node_jobs["Job scheduling<br/>[IJobScheduler.cs]"]
end

subgraph group_crosscut["Cross-cutting services"]
  node_cachecontracts["Cache contracts<br/>[ICacheService.cs]"]
  node_cacheproviders["Cache providers"]
  node_securitycontracts["Security contracts<br/>[ITokenService.cs]"]
  node_jwt["JWT provider<br/>[JwtTokenService.cs]"]
  node_observability["Observability<br/>[IMetricsService.cs]"]
end

node_app(("Application"))

node_app -->|"configures"| node_webbundle
node_app -->|"configures"| node_minimalbundle
node_app -->|"configures"| node_workerbundle
node_app -->|"registers behaviors"| node_pipelinebuilder
node_pipelinebuilder -->|"registers"| node_pipeline
node_app -->|"configures"| node_ef
node_ef -->|"configures"| node_templatecontext
node_ef -->|"implements"| node_persistencecontracts
node_templatecontext -->|"uses entities"| node_core
node_app -->|"configures"| node_eventbus
node_cacheproviders -->|"implements"| node_cachecontracts
node_jwt -->|"implements"| node_securitycontracts
node_search --> node_filestorage

click node_webbundle "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Bundles/Kck.Bundle.WebApi/KckWebApiDefaults.cs"
click node_workerbundle "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Bundles/Kck.Bundle.WorkerService/DependencyInjection/ServiceCollectionExtensions.cs"
click node_minimalbundle "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Bundles/Kck.Bundle.MinimalApi/DependencyInjection/ServiceCollectionExtensions.cs"
click node_pipeline "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Pipeline.Mediator/Behaviors/CachingBehavior.cs"
click node_pipelinebuilder "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Pipeline.Mediator/KckMediatorPipelineBuilder.cs"
click node_core "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Core.Abstractions/Entities/IDomainEventHandler.cs"
click node_persistencecontracts "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Persistence.Abstractions/UnitOfWork/IUnitOfWork.cs"
click node_ef "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Persistence.EntityFramework/KckPersistenceBuilder.cs"
click node_templatecontext "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Kck.Templates/content/Kck.WebApi/src/KckWebApiTemplate.Api/Data/AppDbContext.cs"
click node_domainhandlers "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Core.Abstractions/Entities/IDomainEventHandler.cs"
click node_eventbus "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.EventBus.Abstractions/IEventBus.cs"
click node_cachecontracts "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Caching.Abstractions/ICacheService.cs"
click node_cacheproviders "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Caching.InMemory/InMemoryCacheService.cs"
click node_securitycontracts "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Security.Abstractions/Token/ITokenService.cs"
click node_jwt "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Security.Jwt/JwtTokenService.cs"
click node_filestorage "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.FileStorage.Abstractions/IFileStorageService.cs"
click node_search "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Search.Elasticsearch/ElasticsearchSearchService.cs"
click node_messaging "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Messaging.MailKit/MailKitEmailProvider.cs"
click node_jobs "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.BackgroundJobs.Abstractions/IJobScheduler.cs"
click node_observability "https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Observability.Abstractions/Metrics/IMetricsService.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_webbundle,node_workerbundle,node_minimalbundle toneBlue
class node_pipeline,node_pipelinebuilder,node_core toneAmber
class node_persistencecontracts,node_ef,node_templatecontext,node_domainhandlers toneMint
class node_eventbus,node_filestorage,node_search,node_messaging,node_jobs toneRose
class node_cachecontracts,node_cacheproviders,node_securitycontracts,node_jwt,node_observability,node_app toneIndigo
```

## Components

### Hosting and composition

- [Web API bundle](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Bundles/Kck.Bundle.WebApi/KckWebApiDefaults.cs): `src/Bundles/Kck.Bundle.WebApi/KckWebApiDefaults.cs`
- [Worker bundle](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Bundles/Kck.Bundle.WorkerService/DependencyInjection/ServiceCollectionExtensions.cs): `src/Bundles/Kck.Bundle.WorkerService/DependencyInjection/ServiceCollectionExtensions.cs`
- [Minimal API bundle](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Bundles/Kck.Bundle.MinimalApi/DependencyInjection/ServiceCollectionExtensions.cs): `src/Bundles/Kck.Bundle.MinimalApi/DependencyInjection/ServiceCollectionExtensions.cs`

### Request processing

- [Mediator pipeline](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Pipeline.Mediator/Behaviors/CachingBehavior.cs): `src/Providers/Kck.Pipeline.Mediator/Behaviors/CachingBehavior.cs`
- [Pipeline builder](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Pipeline.Mediator/KckMediatorPipelineBuilder.cs): `src/Providers/Kck.Pipeline.Mediator/KckMediatorPipelineBuilder.cs`
- [Core contracts](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Core.Abstractions/Entities/IDomainEventHandler.cs): `src/Abstractions/Kck.Core.Abstractions/Entities/IDomainEventHandler.cs`

### Persistence and events

- [Persistence contracts](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Persistence.Abstractions/UnitOfWork/IUnitOfWork.cs): `src/Abstractions/Kck.Persistence.Abstractions/UnitOfWork/IUnitOfWork.cs`
- [EF persistence](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Persistence.EntityFramework/KckPersistenceBuilder.cs): `src/Providers/Kck.Persistence.EntityFramework/KckPersistenceBuilder.cs`
- [Template DbContext](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Kck.Templates/content/Kck.WebApi/src/KckWebApiTemplate.Api/Data/AppDbContext.cs): `src/Kck.Templates/content/Kck.WebApi/src/KckWebApiTemplate.Api/Data/AppDbContext.cs`
- [Domain event handlers](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Core.Abstractions/Entities/IDomainEventHandler.cs): `src/Abstractions/Kck.Core.Abstractions/Entities/IDomainEventHandler.cs`

### Provider integrations

- [Event bus](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.EventBus.Abstractions/IEventBus.cs): `src/Abstractions/Kck.EventBus.Abstractions/IEventBus.cs`
- [File storage](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.FileStorage.Abstractions/IFileStorageService.cs): `src/Abstractions/Kck.FileStorage.Abstractions/IFileStorageService.cs`
- [Search provider](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Search.Elasticsearch/ElasticsearchSearchService.cs): `src/Providers/Kck.Search.Elasticsearch/ElasticsearchSearchService.cs`
- [Email providers](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Messaging.MailKit/MailKitEmailProvider.cs): `src/Providers/Kck.Messaging.MailKit/MailKitEmailProvider.cs`
- [Job scheduling](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.BackgroundJobs.Abstractions/IJobScheduler.cs): `src/Abstractions/Kck.BackgroundJobs.Abstractions/IJobScheduler.cs`

### Cross-cutting services

- [Cache contracts](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Caching.Abstractions/ICacheService.cs): `src/Abstractions/Kck.Caching.Abstractions/ICacheService.cs`
- [Cache providers](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Caching.InMemory/InMemoryCacheService.cs): `src/Providers/Kck.Caching.InMemory/InMemoryCacheService.cs`
- [Security contracts](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Security.Abstractions/Token/ITokenService.cs): `src/Abstractions/Kck.Security.Abstractions/Token/ITokenService.cs`
- [JWT provider](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Providers/Kck.Security.Jwt/JwtTokenService.cs): `src/Providers/Kck.Security.Jwt/JwtTokenService.cs`
- [Observability](https://github.com/omerkck41/omerkckarchitecture/blob/main/src/Abstractions/Kck.Observability.Abstractions/Metrics/IMetricsService.cs): `src/Abstractions/Kck.Observability.Abstractions/Metrics/IMetricsService.cs`

### Other components

- **Application**

## Connections

- Application → Web API bundle: configures (evidence: `README.md`)
- Application → Minimal API bundle: configures (evidence: `README.md`)
- Application → Worker bundle: configures (evidence: `README.md`)
- Application → Pipeline builder: registers behaviors (evidence: `README.md`)
- Pipeline builder → Mediator pipeline: registers (evidence: `src/Providers/Kck.Pipeline.Mediator/KckMediatorPipelineBuilder.cs`)
- Application → EF persistence: configures
- EF persistence → Template DbContext: configures
- EF persistence → Persistence contracts: implements (evidence: `README.md`)
- Template DbContext → Core contracts: uses entities (evidence: `src/Kck.Templates/content/Kck.WebApi/src/KckWebApiTemplate.Api/Data/AppDbContext.cs`)
- Application → Event bus: configures
- Cache providers → Cache contracts: implements (evidence: `README.md`)
- JWT provider → Security contracts: implements (evidence: `src/Providers/Kck.Security.Jwt/JwtTokenService.cs`)
- Search provider → File storage
