Skip to content

tarantool/cartridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6c26afc · Apr 11, 2022
Mar 18, 2022
Mar 31, 2022
Mar 18, 2021
Mar 23, 2022
Apr 11, 2022
Mar 31, 2022
Apr 8, 2022
Mar 24, 2021
Sep 14, 2021
Jul 21, 2021
Dec 27, 2021
Dec 15, 2021
May 6, 2020
Feb 7, 2020
Nov 17, 2021
Apr 11, 2022
Mar 31, 2022
Feb 1, 2022
May 12, 2020
May 13, 2021
Apr 11, 2022
Mar 28, 2022
Dec 28, 2020
Apr 16, 2021
Mar 31, 2021
Jan 14, 2021
Mar 26, 2020
Aug 2, 2021
Jan 15, 2021
Sep 16, 2020
May 17, 2019
Mar 2, 2021
Apr 16, 2021

Repository files navigation

Tarantool Cartridge

A framework for distributed applications development.

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.

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.

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:

https://user-images.githubusercontent.com/32142520/109290877-3d30a800-7839-11eb-8fcf-8b3de1237a3b.png

See:

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.