Platform for interactive microservices

Qworum helps stream-aligned devops teams modularize the UI layer of microservices-based enterprise software systems. Applications can be built by combining interactive services that may be hosted anywhere on the web, both on the Internet and in company intranets.

Qworum allows for unbounded nesting levels
The user flow for Qworum applications that span several DNS domains.

Solving the performance bottleneck that monolithic frontends represent

What are microservices architectures?

Microservices architectures enable rapid software delivery by allowing different parts of a software system to be developed, deployed and updated in parallel by different teams within an organization and also across organizations.

Microservices architectures organise developer teams around vertical slices of software systems rather than the horizontal UI, business logic, and data layers. In order words, microservice teams are responsible for all of these 3 layers within the boundaries of a particular slice.

What is wrong with monolithic user interfaces?

For microservices architectures, having a monolithic component at the UI layer represents a bottleneck for the software development lifecycle, because the team responsible for the UI monolith cannot scale with the number of microservices.

Are micro frontends the right solution?

Today, the only solution that software developers have at their disposal for breaking UI monoliths into smaller parts involves micro frontends.

Micro frontends are UI components that are plugged into dashboard-style web pages for building web applications. In this case web applications become simple containers for micro frontends.

Micro frontends are implemented using various technologies such as React.js components, web components or iframes, none of which are specific to microservices architectures.

Besides being only suitable for dashboard-style applications, other limiting factors for micro frontends include:

  • Bounding context — Micro-frontend solutions are typically only usable within a particular context rather than being universally applicable. This limiting context can be a particular organization (which precludes cross-organization applications), a particular web application, or a particular frontend framework such as React.js or Angular for example.
  • Data exchange — The data exchange mechanism between a micro-frontend and its container is ad hoc at best. For example, if a micro-frontend is implemented as a React.js component, then the micro-frontend can use React.js's built-in mechanism for receiving data from its container. On the other hand, how and if a React.js component can return a result to its container is an implementation detail that needs to be resolved on a case by case basis. This is because micro frontends are conceived as UI components rather than full-blown services.
  • Nesting — Micro frontends typically cannot be nested beyond 1 or 2 levels, because the allocated screen area becomes significantly smaller with each nesting level.

Interactive microservices with Qworum

Qworum is a UI technology that was made specifically for microservices architectures. In contrast to micro frontends, which are parts of web pages, Qworum takes the web-API approach to user interaction.

In effect, Qworum defines a new type of web API where each end-point can receive data, interact with the end-user if needed, and then return a result. Note that Qworum services are not components embedded in web pages. Rather, they offer full-page UIs to end-users.

Also, in contrast to micro-frontend solutions where there are two types of entities (micro frontends and container applications), with Qworum everything is a Qworum service, including applications.

With Qworum everything is a Qworum service, including applications
With Qworum everything is a Qworum service, including applications

So, while Qworum complements micro frontends rather than making them obsolete, by the same token Qworum does not have many of the limitations that micro frontends are burdened with:

  • Range of usage scenarios — Qworum is a web-scale microservices platform that is usable both within organizations and across organizations. Qworum is also independent from any particular application or web framework.
  • Data exchange — Qworum defines a standard mechanism for exchanging data between Qworum services and their callers. This obviates the need for developing ad hoc data exchange solutions that are specific to a given application, framework or organization.
  • Nesting — Qworum allows for unbounded nesting levels.
Qworum allows for unbounded nesting levels
Qworum allows for unbounded nesting levels