User:Damiancatalin/sandbox

SwarmESB is a microservices architecture based on a higher level of active message communication pattern that we call “swarm communication”. It offers a starting architecture for cloud and enterprise systems.

Introduction
The usual method of doing message passing is to have relatively intelligent processes, objects or actors sending and receiving dumb messages. Thinking to messages as relatively smart beings visiting relatively non intelligent places, we noticed a positive effect on the quality of the code and a new path for decomposing complex applications in small services.

Header 2
SwarmESB is using swarm communication for creating an easy to grow Enterprise Service Bus. One can add microservices (offered by “adapters”) and describe how microservices get composed for your use cases in a coupling free DSL (“swarm descriptions”). SwarmESB is growing in the direction of executable choreographies, to offer by design an improved architecture for security and privacy.

A "swarm" is a set of related messages with some basic intelligence and is based on an intuitive point of view: computer processes communicating by asynchronous messages are more like "dumb trees/flowers" visited by "smart swarms of bees", rather than "smart people" communicating by "dumb messages". This intuition has a powerful effect on reducing the complexity of many distributed systems. Service orchestration with SwarmESB is elegant, there is no need to learn new languages and difficult concepts: just use Java Script code and a few simple concepts. SwarmESB is an open source project implementing a new approach: "Swarming architecture" that you could reuse for your new multi-tenant systems that will transparently acquire the benefits of scalability, high availability, highly parallel computing and loose coupling usually obtained with asynchronous messages, message queues, pub/sub channels and using a message or service bus. While this project is build using Node.js and Redis, it will present "swarming" as a new concept, comparable, but simpler than direct usage of Enterprise Integration Patterns or the Actor model used in Scala and Erlang.