Artifact Types
Every project in a Kinotic application contributes one or more artifacts. An artifact is a typed output that the platform knows how to build, deploy, and manage. This page describes each artifact type and when to use it.
Persistence
The most common starting point. A persistence artifact defines your domain models (entities) and gets auto-generated CRUD services in return.
What you provide:
- Entity classes decorated with
@Entityand field-level annotations like@NotNull,@Precision, and@AutoGeneratedId.
What the platform provides:
- Full CRUD operations (save, find, delete) with pagination and sorting.
- Named queries derived from method naming conventions.
- Automatic storage provisioning and indexing.
Persistence is typically the first artifact you create because it establishes the data model that the rest of the application builds on.
Microservice
A microservice artifact is long-running code that executes in a pod or VM. It publishes services that other parts of the application can discover and call through auto-generated proxies.
What you provide:
- TypeScript classes that implement your business logic.
- Service interfaces that you want to expose to the rest of the application.
What the platform provides:
- Automatic service registration in the Service Directory.
- Auto-generated proxy classes so other projects can call your service with a simple function call.
- Lifecycle management, scaling, and health monitoring.
Use a microservice when your logic goes beyond simple CRUD -- orchestrating across multiple entities, calling external APIs, or running long-lived workflows.
Batch Job
A batch job artifact is code that runs on a schedule. It is ideal for periodic tasks like data aggregation, report generation, cleanup routines, or syncing with external systems.
What you provide:
- TypeScript code that performs the job.
- A schedule definition (cron expression or interval).
What the platform provides:
- Scheduled execution with retry and failure handling.
- Logging and observability for each run.
UI Component
A UI component artifact produces reusable building blocks that can be shared across multiple frontends within the application. Think of it as an internal component library.
What you provide:
- Reusable UI components packaged for consumption by frontend projects.
What the platform provides:
- Versioning and distribution within the application.
Frontend
A frontend artifact is a complete user interface that gets deployed as a static site. It consumes services published by other projects in the application.
What you provide:
- A web application (built with any framework) that compiles to static assets.
What the platform provides:
- Static hosting with CDN distribution.
- Automatic connection to the application's services through the Kinotic client libraries.
Combining Artifact Types
Most real-world applications combine several artifact types. A typical setup might look like this:
| Project | Artifact Type | Role |
|---|---|---|
data | Persistence | Defines entities and provides auto-generated CRUD services |
services | Microservice | Implements business rules that orchestrate across entities |
jobs | Batch Job | Runs nightly data aggregation |
web | Frontend | The main user interface |
Each project is independently developed and versioned, but they all deploy as part of the same application and communicate through the Service Directory.