Skip to content

Implementation

Architecture

This project is “polyglot” (cool with using multiple programming languages).

Connectors written in https://www.emojicode.org are actively being worked on.

We follow a UNIX philosophy-inspired approach to modularity among the subsystems and within their code.

We do not think it’s necessarily all that bad to “shell out” (exec) to invoke existing CLI tools, if this can significantly accelerate required integrations, or simplify authentication & authorization security. But such tools such produce output in some machine readable structured text format (such as JSON, YAML, TextProto) or even a well-known binary format (such as Protocol Buffers binary serialization), not formatted text output intended for humans.

Java

The initial implementation of the Core is in Java.

The only reason the initial author of the project chose Java was that this allowed him to be most productive, because of his prior knowledge in this particular programming language’s ecosystem.

The fact that the core was initially written in Java is very much considered an “implementation detail” which should not “leak” to end-users of the core library and its packaging in Editions, such as for Kubernetes, and its API clients.

GraalVM native image builds are one way to hide Java installation etc.