Archtecture Components

Overview

Slate Kit offers several features designed 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.

Install

Many of these modules have their own project. See the guides for each respective project for more info. However, below is a quick sample of a gradle setup.

     
    repositories {
        maven { url  "https://dl.bintray.com/codehelixinc/slatekit" }
    }

    dependencies {
        // For results ( modeling success/failures with optional status codes )
        compile 'com.slatekit:slatekit-results:1.0.0'

        // For app ( application template with args, cli, envs, logs, help )
        compile 'com.slatekit:slatekit-app:1.0.0'
    }

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 support for detailed metrics, time-stamps, and a synchronous or async public APIs. See Cache

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

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

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

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

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