#Knot.x - efficient, high-performance and scalable integration platform for modern websites
Let's imagine an online banking website containing different features like a chat box, exchange rates, stock data and user profile information. The site has a high performance characteristic, despite of its complexity and target publishing channels.
All those features come from different providers/vendors having their own teams working in various modes, technologies and release cycles.
Knot.x connects all of them in a controlled and isolated way, preventing any undesired interferences. It combines asynchronous programming principles and message-driven architecture providing a scalable platform for modern sites.
Knot.x connects all of the above in a unified customer experience.
###Features
Probably you have many features / services you want to connect to your site. They come from different vendors, talk using various network protocols (HTTP/WebSocket/TCP etc.) and message formats (SOAP/JSON/XML/binary etc.).
Knot.x assembles your static HTML pages with any features / services in a very performant manner. It loads and analyses static pages from a Repository, collects dynamic features from multiple sources asynchronously and injects them into the page. If a service you connect to may have unpredictable or cyclic outages you can easily handle them according to your business rules.
Read the Service Knot section to find out more about this topic.
###Forms
Every site contains more or less complicated forms. Knot.x supports simple and multi-step forms. It handles submission errors, form validation and redirects to success pages.
Forms can be used to compose multi-step workflows. Knot.x allows you to define a graph of interconnected steps, responding to user input / site visitor choices.
Find out more about this topic by reading the Action Knot section of the Knot.x documentation.
###Prototyping
A potential client asked you to prepare a demo presenting the capabilities of a new site. The client operates in the financial sector so your site needs to connect to exchange rates and stock data services. Those features are not publicly available so you only have some sample data to work with.
Knot.x gives you the ability to use simple Mocks. This allows you to expose your sample data directly to pages. Additionally your demo pages can be easily changed to use live services without any further development work. Your client will be impressed with how fast it can happen.
Find out more about this topic by reading the Mocks section of this documentation.
###Extensions
You need to implement custom authentication mechanism for your site and then integrate with service talking with its own custom protocol. Knot.x is a fully modular platform with very flexible extension points that we call Knots and Adapters.
Those extension points communicates with Knot.x Core using a very performant Event Bus so you can implement your integration layer in one place inside Knot.x. Not enough? If you wish, you can implement your extensions in any language you like, as long as it's supported by Vert.x.
Find out more about this topic by reading the Knots and Adapters sections of this documentation.
We care a lot about speed and that is why we built Knot.x on top of Vert.x, known as one of the leading frameworks for performant, event-driven applications.
Knot.x uses asynchronous programming principles, which allows it to process a large number of requests using a single thread. Asynchronous programming is a style promoting the ability to write non-blocking code (no thread pools). The platform stays responsive under heavy and varying loads and is designed to follow the principles outlined in the Reactive Manifesto.
Knot.x relies on asynchronous message-passing to establish a boundary between system components that ensures loose coupling, isolation and location transparency. A base Knot.x component is called a Knot.
Various scaling options are available to suit client needs and help in cost optimisation. Using a simple concurrency model and a message bus, Knot.x can be scaled within a single host or a cluster of servers.
See our Wiki for full documentation, examples and other information.
For bugs, questions and discussions please use the Github Issues.
You can run a Knot.x demo within less than 5 minutes, all you need is Java 8. See how you can run the Knot.x demo.
Knot.x is licensed under the Apache License, Version 2.0 (the "License")