Reactive Manifesto

Today, I signed up for Reactive Manifesto here, as I think it makes a lot of sense in today’s software building infrastructures.

The intention behind this is to have a condense knowledge that has been accumulated as an industry as to how can one design a highly scalable and reliable applications into a set of architecture traits, and to have a common set of buzzwords to have talks about these matters between all the stake holders in that process, such as, developers, leads, business teams, CTO’s etc.

We can also see Reactive Manifesto as a dictionary of best practices, and some of these practices have been known and in existence since a long time. Often this kind of system could be achieved by having one-way or two-way binding, with contextual event arguments. This binding should be smooth and should be oriented around propagation of events, not polling, but still modular, generic, loosely coupled, and polymorphic.

By any means, the thinkers behind Reactive Manifesto did not want this to be a final destination, but rather as a starting point for design of solutions, both from the end-user projects perspective as well as from the point of view of designing reusable libraries and frameworks.

There have been lot of examples of systems built with this, such as much more light-weight what-you-see-is-what-you-get (WYSIWYG) text editors, and in web development, we have SSE’s (server-sent events) driven technologies such as, Knockoutjs, Node.js, Meterior.js, Derbyjs, and others. Windows Presentation Foundation (WPF) of Microsoft has widely implemented it, using XAML.

These systems are based on four pillars as defined by the manifesto, i.e; Responsive (high performance loadwise), Resilient (fail and recover, error tolerant), Elastic (highly available), Message Driven (loosely coupled). Now, as, I stated earlier that this is not an end but a start. This also means that there might be more pillars added to this manifesto in future.  I believe that this is the architecture for the future. It is time to bring the best from the team to the end-users, and to bring the best. I hope the best wins.