# Tarantool Cartridge

A framework for distributed applications development.

Contents

- Tarantool Cartridge

  - About Tarantool Cartridge

  - Getting started

    - Prerequisites

    - Create your first application

    - Next steps

  - Contributing

## About Tarantool Cartridge

Tarantool Cartridge allows you to easily develop Tarantool-based applications and run them on one or more Tarantool instances organized into a cluster.

This is the recommended alternative to the old-school practices of application development for Tarantool.

As a software development kit (SDK), Tarantool Cartridge provides you with utilities and an application template to help:

- easily set up a development environment for your applications;

- plug the necessary Lua modules.

The resulting package can be installed and started on one or multiple servers as one or multiple instantiated services – independent or organized into a cluster.

A Tarantool cluster is a collection of Tarantool instances acting in concert. While a single Tarantool instance can leverage the performance of a single server and is vulnerable to failure, the cluster spans multiple servers, utilizes their cumulative CPU power, and is fault-tolerant.

To fully utilize the capabilities of a Tarantool cluster, you need to develop applications keeping in mind they are to run in a cluster environment.

As a cluster management tool, Tarantool Cartridge provides your cluster-aware applications with the following key benefits:

- horizontal scalability and load balancing via built-in automatic sharding;

- asynchronous replication;

- automatic failover;

- centralized cluster control via GUI or API;

- automatic configuration synchronization;

- instance functionality segregation.

A Tarantool Cartridge cluster can segregate functionality between instances via built-in and custom (user-defined) cluster roles. You can toggle instances on and off on the fly during cluster operation. This allows you to put different types of workloads (e.g., compute- and transaction-intensive ones) on different physical servers with dedicated hardware.

Tarantool Cartridge has an external utility called cartridge-cli which provides you with utilities and an application template to help:

- easily set up a development environment for your applications;

- plug the necessary Lua modules;

- pack the applications in an environment-independent way: together with module binaries and Tarantool executables.

## Getting started

### Prerequisites

To get a template application that uses Tarantool Cartridge and run it, you need to install several packages:

- `tarantool` and `tarantool-dev` (see these instructions);

- `cartridge-cli` (see these instructions)

- `git`, `gcc`, `cmake` and `make`.

### Create your first application

Long story short, copy-paste this into the console:

    cartridge create --name myapp
    cd myapp
    cartridge build
    cartridge start -d
    cartridge replicasets setup --bootstrap-vshard

That’s all! Now you can visit http://localhost:8081 and see your application’s Admin Web UI:

### Next steps

See:

- A more detailed getting started guide

- More application examples

- Cartridge documentation

- Cartridge API reference

## Contributing

The most essential contribution is your feedback, don’t hesitate to open an issue. If you’d like to propose some changes in code, see the contribution guide.