Skip to main content

More architecture

Event Driven Architecture

reactive programming is a declarative programming paradigm concerned with data streams and the propagation of change

reactive programming: a:= b+ c where a is automatically updated whenever b or c changes. In MVC, model changes will be reflected in an associated view.

Gerrit Dashboard?

What Is Blocking?

blocking means the flow of execution is blocked waiting for a process to complete

What Is Non-Blocking?

The non-blocking approach facilitates IO Input-Output intensive operations. Besides the disk & other the hardware-based operations, communication and network operations also come under the IO operations.

CPU intensive & IO intensive

Non-blocking architecture is also known as the Reactive or the Event-driven architecture

Technologies like NodeJS, frameworks in the Java ecosystem like Play, Akka.io are non-blocking in nature and are built for modern high IO scalable applications.

They enable us to write code without worrying about handling multi-threads, thread lock, out of memory issues due to high IO etc.

Node.js

  • Real-time applications (chat, feeds)
  • Event-driven architecture
  • Can perform client-server duties (e.g. serve files), but not well-suited for this
  • Database management, testing tools, etc, available as additional packages

Play

  • Client-server applications (website, services)
  • Share-nothing architecture
  • Can perform real-time duties (e.g. Websockets), but not well-suited for this
  • Database management (including migrations!), testing tools, etc, built into core