Skip to content

mahmoudimus/TANK

 
 

Repository files navigation

Tank is a very high performance distributed log, inspired in part by Kafka, and other similar services and technologies.

You should begin by reading about the core concepts and the client API (A new Java Tank Client is now available).

It depends on our Switch library, so a lean/stripped-down Switch is included in the repo. Please see building instructions. You may also want to run Tank using its Docker image.

This is our first major open source release as a company, and we plan to accelerate our OSS release efforts in the future.

It will eventually support, among other features:

  • clusters via leader/followers arrangement using etcd, similar in semantics to Kafka (but no single controller, and simpler configuration and operation)
  • higher level clients, based on Kafka's current client design (depending on the needs of our developers, but PRs will be welcome)
  • hooks into other Phaistos infrastructure
  • a Kafka/DataFlow like streams topologies abstraction/framework
  • encryption (wire transfers and bundle serialization)
  • improved client and extended API
  • HTTP/1 and HTTP/2 REST APIs

Features include:

You should probably use Kafka (the Confluent folk are particularly great), or Google Pub/Sub, or any other open source broker/queue instead of Tank - they are all perfectly fine, some more than others, if support for cluster-aware setups is crucial to you(this feature is in the works).

Tank's goal is highest performance and simplicity. If you need very high performance, operation simplicity and no reliance on other services (when running Tank in stand-alone mode), consider Tank.

Please see the wiki for more information.

We chose the name Tank because its a storage chamber, suitable for liquids and gas - which we think is analogous to a storage container for data that flows, from and to other containers and other systems via 'pipes' (connections).

About

A very high performance distributed log service

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.1%
  • Other 0.9%