/
PoC's

PoC's

The PoC’s section (Proof-of-Concepts) showcases several experimental architecture setups that were or will be evaluated during the transition to the Eureka platform. These artifacts(tables, reports, diagrams) are intended to illustrate alternative CI/CD approaches or new tools that the FOLIO DevOps team will try or try out in order to improve the pipeline. Essentially, the PoC artifacts and descriptions serve as an architectural sandbox, giving insight into how Eureka’s CI/CD could evolve or why it took its current shape.

Application registry

Requirements:

The selected Application Registry must satisfy the following functional and non-functional requirements:

Functional Requirements:

Descriptor Retrieval:

  • AR must allow pulling descriptors without authorization.

Descriptor Management (secured operations):

  • AR must support pushing, updating, and deleting descriptors with authorization.

Descriptor Filtering:

  • AR must support filtering descriptors by version types, including:
    Release versions (e.g., app-fqm-1.2.3)
    Snapshot versions (e.g., app-fqm-1.2.3-SNAPSHOT.23)
    Custom or development versions (e.g., app-fqm-1.2.3-DEV.43, app-fqm-1.2.3-SNAPSHOT.fe3tre)

  • AR must support filtering descriptors by application name.

  • AR must support retrieving the latest descriptor versions filtered by:
    Application name and version type.

Non-Functional Requirements:

Availability and Reliability:

  • AR must offer high availability of 99.9%, ensuring minimal downtime and rapid recovery.

Fault Tolerance:

  • AR must tolerate individual node or infrastructure failures without data loss, providing redundancy and backups.

 

S3

FAR (mgr-applications)

GitHub Packages

etc

 

S3

FAR (mgr-applications)

GitHub Packages

etc

Features

 

 

 

 

Reliability

 

 

 

 

Fault tolerance

 

 

 

 

Pipelines engine

Requirements:

The selected Pipelines Engine (e.g., Jenkins Jobs vs GitHub Workflows) must satisfy the following criteria:

Functional and Performance Requirements:

Concurrency and Frequency:

  • Must support running approximately 30–60 simultaneous workflows every 15–30 minutes, possibly staggered in intervals (e.g., every 5 minutes).

  • Must support additional 1–3 workflows every hour for platform validation and release tasks.

Build and Execution Environment:

  • Must provide a Java runtime environment and yarn for executing build, validation, compilation, and testing tasks.

Non-Functional Requirements:

Scalability:

  • Pipelines engine must efficiently scale to support peak loads without significant delays or queueing, especially during concurrent builds.

Reliability and Availability:

  • Pipelines should have high reliability, low failure rates, and high availability (minimal downtime, scheduled maintenance clearly communicated).

 

 

Jenkins job

GitHub workflow

 

Jenkins job

GitHub workflow

Performance

 

 

Limitations

 

 

Related content