Badoo Oct 12, 2018

A Modern Kotlin-Based MVI Architecture

Article Summary

Zsolt Kocsi from Badoo reveals how their chat module kept losing first messages despite a full Clean Architecture rewrite. The culprit? Uncontrolled state mutations in a massively asynchronous app.

Badoo's engineering team open-sourced MVICore, their Kotlin-based MVI framework, after traditional architecture patterns failed to solve race conditions and edge cases in their chat feature. This deep dive explains how they moved beyond simple state reducers to build a production-ready solution.

Key Takeaways

Critical Insight

MVICore treats state changes as serialized transactions through a central Reducer, making complex async behavior predictable and debuggable.

The article breaks down optional components like Actor, NewsPublisher, and Bootstrapper that handle the messy real-world scenarios reducers alone can't solve.

Recent from Badoo

Related Articles