Skip to content

Latest commit

 

History

History
86 lines (54 loc) · 3.04 KB

File metadata and controls

86 lines (54 loc) · 3.04 KB

Summary

As documented in detail elsewhere, the projects managed by the Foundation fall into four high-level categories:

  • Lichen: A UBL document processing system that sends business documents to the Interlibr for rule discovery and execution. This categories includes web and mobile applications that interact with Lichen document services.

  • XAlgo: A high-level declarative language for specifying rules that operate on hierarchical documents (JSON-like).

  • Interlibr: A compute service that performs rule discovery and execution for using the XAlgo specification.

  • XalgoAuthor: An authoring interface for tables and rules that will be executed by Interlibr.

Active Projects

Integrated Solutions

Contains the Docker and Kubernetes deployment configurations and includes the Ruby/Thor based Interlibr CLI.

Common Libraries

This Ruby gem uses Parslet to offer a parser for the Xalgo syntax. The output of the parser is a JSON representation of the Xalgo.

UBL Parser

A simplistic UBL parser written in Ruby and Javascript.

This Scala library is a reference implementation of the Xalgo Execution Model. The team refers to this implementation as the naive interpreter.

A storage abstraction layer in Scala used by several of the Scala services.

Services

A service is an independantly running process typically following the micro-service architecture pattern. In Interlibr, services are typically deployed as Docker containers on Kubernetes.

All of the Spark processing performed in Interlibr is written in Scala and compiled to a single JAR.

This Ruby/Sinatra service receives action-oriented requests related to rules and tables that are stored in Github repositories. It can receive notifications from Github to update stored rules and tables. Most of its processing is scheduled as Sidekiq jobs.

This Scala service written with Play and Akka handles all inbound processing requests.

This Scala service written with Play and Akka handles all requests for data stored in the platform.

This Scala service written with Akka process all rule executions requests which are delivered via Kafka queues.

This NodeJS service offers a web socket subscription service that can be using by integrated services to receive notifications of processing events.