Archtecture Components


Slate Kit offers several features as modular Architecture components. These are designed as a collection of Kotlin libraries that help you to quickly build fully featured, testable, and scalable applications on the JVM. Several of the modules can be used for both Server and Android. Click any of the modules below for more info.

Models successes and failures accurately with optional status codes. Works with exceptions, validations. See Results

A simple, intuitive, protocol independent approach to building APIs in Slate so they run as Web APIs or on the CLI. See APIs

An general purpose App template with support for environments, logging, configs, diagnostics, help usage and more. See App

Command line interface to handle actions in an interactive way. Has customization and formatting features. See CLI .

Light-weight cache with an emphasis towards diagnostics, and a synchronous or async Channel based APIs. See Cache

An application context to hold common dependencies like command line args, envs, configs, logger, encryptor, etc, See Context

Light-weight, domain-driven entity framework with optional ORM. You can use the Entity Interfaces and code without the ORM. See Data

Send emails with optional templates, with a default implementation for SendGrid. See Email for details on setup and usage.

A simplified interface and abstraction for persistent file storage. Default implementation available in AWS S3 See Files

Command Line Project generator with extensible templates to quickly create new Slate Kit or custom apps. See Generators

Background Jobs/Task queue system for one-off, paged, and queued jobs with middleware support and diagnostics. See Jobs

A simplified interface and abstraction for persistent queues. Support for AWS SQS and in-memory queue. See Queues

Send text messages to mobile phones, with support for templates, with a default implementation using Twilio. See SMS

Support for diagnostics and tracking of runtime values and recording of events. This supplements typical metrics libraries. See Tracking