Skip to content

Fragments map-reduce processing using Graph flows, supplier and assembler.


Notifications You must be signed in to change notification settings


Repository files navigation

Build Status CodeFactor codecov Gradle Status

Knot.x Fragments

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:

  • API Gateway
  • Backend For Frontend (BFF) for single-page applications (SPA)
  • Web API (both REST and GraphQL)

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.


How does it work

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.

Supply Fragments

Fragments are the result of a request being split (e.g. HTML markup) into smaller, independent parts by the Fragments Supplier.


Evaluate Fragments

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.

Assemble Fragments

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 and use Creative Commons License Attribution 4.0 International.