Resources for learning about reactive systems, reactive programming and architecture.
Please submit a pull request if you want to add a resource here.
An overview of reactive programming, systems and architecture (slides). Good starting point, more conceptual rather than technical.
For now:
General, architectural approach to modern applications: https://www.reactivemanifesto.org/
Reactive Programming: https://en.wikipedia.org/wiki/Reactive_programming FRP (also mentioned in the frameworks video below): https://en.wikipedia.org/wiki/Functional_reactive_programming there are many better links: … https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
Reactive Streams – general idea, many implementations: http://www.reactive-streams.org/ Example using Akka/Scala: https://www.youtube.com/watch?v=XCP6zg46utU https://www.slideshare.net/ktoso/reactive-stream-processing-with-akka-streams
Streaming frameworks: https://www.linkedin.com/pulse/spark-streaming-vs-flink-storm-kafka-streams-samza-choose-prakash/
Various architectures for dealing with concurrency (great description of tradeoffs): (it’s based on Scala, but you don’t need to know it to watch the video) https://www.youtube.com/watch?v=OJfS7K-Vkgk
Message delivery guarantees (do you need reliable messaging, what’s the cost?): https://www.infoq.com/articles/no-reliable-messaging https://www.confluent.io/blog/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it/ https://softwaremill.com/what-kafka-exactly-once-really-means/ https://news.ycombinator.com/item?id=9266725
https://www.lightbend.com/certified-reactive-architect
Why Reactive Reactive Manifesto Reactive Principles Reactive Systems Reactive Programming Actor Model Domain Driven Design Ubiquitous Language Bounded Contexts Anti-Corruption Layers Command, Events, Queries Value Objects, Entities, Aggregates Services, Factories, Repositories Hexagonal Architecture Reactive Microservices Microservices vs Monoliths Isolation of State, Space, Time, Failure Bulkheading Circuit Breakers Gateway Services Consistency, Availability, Scalability Performance vs Scalability Strong Consistency vs Eventual Consistency Contention and Amdahl's Law Coherency and Gunther's Law Sharding CRDTs Messaging and Coordination Synchronous vs Asynchronous Messaging Saga Pattern Two Generals Problem Delivery Guarantees Point to Point Publish/Subscribe CQRS/ES Audit Logs Event Sourcing Command Sourcing CQRS Consistency, Availability, Scalability in CQRS