MicroStream

Object-Stream Mapping

Stream any Java object graph into Event Streaming Platforms and read it vice versa.
Ultra-fast seamless data transfer over the entire way from publishers over an event streaming platform to consumers.
Use any Java types . No limitations as the traditional Java serialization. Super Easy to Use.




Object-Stream

MicroStream enables you to publish any Java object graph of any complexity or any subgraph into any event streaming platform and vice versa reading it.


No Limitations

With MicroStream any object can be serialized. No annotations, special interfaces like Serializable, superclasses or other internal configurations required. Even third-party API objects are supported.


Super-fast

MicroStream uses a highly optimized format that is made for ultra-high-speed data transfer between producers and consumers over event streaming platforms. 20x faster than Java Serialization!


Highly Secure

Different to Java Serialization, MicroStream transfers data only, but never class information. Thus, injecting and executing malicious code automatically through deserialization is impossible.


Supported Platforms

kafka      pulsar

{}

Some Code

MicroStream Object-Stream-Mapping is Ultra-fast & Super Easy to Use



Object to Publish

You can use any Java class (POJO). No annotations, no special interfaces like Serializable, no superclasses required. Even objects of third-party APIs can be used.


class Customer
{
    private String         name;
    private Address        address;
    private List<Purchase> purchases;

    // constructors, getter, setter, …
}


Producer

KafkaObjectStreamProducer<String, Customer> producer = KafkaObjectStreamProducerFoundation.<String,Customer>New()
     .setScope(ObjectStreamScope.Dynamic("customers"))
     .setKafkaTopicProvider(KafkaTopicProvider.Constant("acquired-customers"))
     .setServer("host:port")
     .createProducer()
;
producer.produce(new Customer(/*...*/));


Consumer

KafkaObjectStreamConsumer<String, Customer> consumer = KafkaObjectStreamMapping.<String, Customer>ConsumerFoundation()
    .setScope(ObjectStreamScope.Dynamic("customers"))
    .setKafkaTopicSubscriber(KafkaTopicSubscriber.New("acquired-customers"))
    .setServer("host:port")
    .setConsumeEarliest("customers-group1")
    .createConsumer()
;
consumer.consume((kv, error) -> {
    System.out.println("Received customer = " + kv.value());
});


Get Started

Use any JVM Technologies

Java Android GraalVM Quarkus Kotlin Scala Groovy

MicroStream Object-Stream Mapping
Stream Any Java Object Graph Into Any Event-Streaming Platform. Ultra-fast. Highly secure. Super easy.



Get Started