DataCarrier is a light, embed, high-throughput, publish-subscribe MQ.

This project has been included and donated into Apache software foundation, as a part of Apache SkyWalking.

Sky-Walking APM uses DataCarrier in sky-walking agaent, one implementation version is used in OneAPM Ai commercial edition. See skywalking version.

Coverage Status Download

Why need DataCarrier


How to use


 * set consumers to this Carrier.
 * consumer begin to run when {@link DataCarrier<T>#produce(T)} begin to work.
 * @param consumer single instance of consumer, all consumer threads will all use this instance.
 * @param num      number of consumer threads
 * @return
carrier.consume(consumer, 10);

- create a consumer (sample)
public class SampleConsumer implements IConsumer<SampleData> {
    public int i = 1;

    public void init() {


    public void consume(List<SampleData> data) {
        for(SampleData one : data) {

    public void onError(List<SampleData> data, Throwable t) {


    public void onExit() {



(中文)SkyWalking子项目--DataCarrier 1.0 解读