{"repo":"Trendyol/kediatR","free":true,"listed":false,"github":"https://github.com/Trendyol/kediatR","clone":"git clone https://github.com/Trendyol/kediatR.git","description":"Mediator implementation in Kotlin with native coroutine support","language":"Kotlin","stars":218,"topics":["kotlin","mediator-pattern","cqrs","inprocess-bus","cqs","mediator","coroutines","koin","quarkus","spring-boot"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"kediatR Mediator implementation in Kotlin with native coroutine support. Send requests to a single handler, publish notifications to many, and wrap both in pipeline behaviors — all suspend -first. Ships dependency-provider integrations for Spring Boot, Quarkus and Koin. [!TIP] \"kedi\" in Turkish means cat 🐱 and kediatR rhymes with the C# equivalent library mediatR :) Contents - Install - Concepts - Quick start - Requests - Notifications - Publish strategies - Pipeline behaviors - Handler inheritance - Dependency injection - Spring Boot - Koin - Quarkus - Migrating from 3.x - IntelliJ plugin Install Pick the version from releases, then add the modules you need. Core alone is enough for plain Kotlin apps — the starters only add the wiring to resolve handlers from a DI container. Concepts Everything flows through the Mediator . There are exactly three message kinds: Message Handlers Returns Dispatched with ---------------- -------------- --------- ---------------------- Request exactly one T mediator.send() Request.Unit exactly one nothing mediator.send() Notification zero or more nothing mediator.publish() A Request unifies what other libraries split into \"commands\" and \"queries\" — both are just a request that returns a value (use Request.Unit when there's nothing to return). Each request has one handler. A Notification is fire-and-forget and can fan out to many handlers. PipelineBehavior wraps every send and publish , giving you one place for cross-cutting concerns (logging, v","default_branch":null,"files":null,"tree":[],"storefront":"/r/Trendyol","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Trendyol/kediatR/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}