While Knot.x HTTP Server is a "hearth" of Knot.x, Fragments processing is its "brain".
Knot.x Fragments is a Swiss Army knife for integrating with various data sources. It provides instruments that transform business use cases into implementation logic ready for evolution.
Knot.x Fragments is designed to build fault-tolerant, reactive, back-end integrations such as:
Additionally, it still supports its original purpose which is templating solution that combines dynamic data (from external data sources, 3rd party API, etc.) with static content (HTML, JSON, PDF, etc.) that comes from various content stores (such as Wordpress, Drupal, Magnolia or Adobe Experience Manager). See the example.
Knot.x Fragments is a set of Handlers that are plugged into the Knot.x Server request processing.
Fragments processing starts with converting an HTTP request to one or more Fragments that are then evaluated and eventually combined into an HTTP response.
Fragments are the result of a request being split (e.g. HTML markup) into smaller, independent parts by the Fragments Supplier.
Each Fragment can specify a processing Task that points to a named, directed graph of executable nodes.
Each node transforms the Fragment's content, updates its payload and finally responds with Transition.
Nodes are connected with each other with Transitions, directed graph edges.
You may read more about it in the Fragments Handler API.
Action is a node with possible restrictions imposed. E.g. its execution can be limited to a certain time. If this does not end within that time, Action will time out. In this case, the Action responds with an error Transition, which indicates that some fallback node can be applied.
Finally, after all the Fragments were processed, they are combined into a single response by the Fragments Assembler handler.
Knot.x Fragments is licensed under the Apache License, Version 2.0 (the "License")
Icons come from https://www.slidescarnival.com and use Creative Commons License Attribution 4.0 International.