Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Kotlin Design Patterns and Best Practices - Third Edition

You're reading from  Kotlin Design Patterns and Best Practices - Third Edition

Product type Book
Published in Apr 2024
Publisher Packt
ISBN-13 9781805127765
Pages 474 pages
Edition 3rd Edition
Languages
Author (1):
Alexey Soshin Alexey Soshin
Profile icon Alexey Soshin

Table of Contents (19) Chapters

Preface Section 1: Classical Patterns
Getting Started with Kotlin Working with Creational Patterns Understanding Structural Patterns Getting Familiar with Behavioral Patterns Section 2: Reactive and Concurrent Patterns
Introducing Functional Programming Threads and Coroutines Controlling the Data Flow Designing for Concurrency Section 3: Practical Application of Design Patterns
Idioms and Anti-Patterns Practical Functional Programming with Arrow Concurrent Microservices with Ktor Reactive Microservices with Vert.x Assessments
Other Book You May Enjoy
Index

Fan-In

The objective of the Fan-In design pattern is to consolidate results generated by multiple workers. This pattern becomes invaluable when workers produce results that need to be gathered and managed.

Unlike the Fan-Out design pattern we discussed earlier, which involves multiple coroutines reading from the same channel, Fan-In reverses the roles. In this pattern, multiple coroutines can contribute their results by writing them to the same shared channel.

Combining the Fan-Out and Fan-In design patterns lays a solid foundation for building MapReduce algorithms. To illustrate this concept, we’ll make a slight modification to the workers used in the previous example:

private fun CoroutineScope.doWorkAsync(
    channel: ReceiveChannel<String>,
    resultChannel: Channel<String>
) = async(Dispatchers.Default) {
    for (p in channel) {
        resultChannel.send(p.repeat(2))
    }
}

Now, each worker sends the results of its computations to a common...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}