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