Spring XD is a unified, distributed, and extensible runtime for data ingestion, real time analytics, batch processing, and data export. The project's goal is to simplify the development of big data applications.
Big data applications share many characteristics with Enterprise Integration and Batch applications. Spring has provided proven solutions for building integration and batch applications for more than 8 years now via the Spring Integration and Spring Batch projects. Spring XD builds upon this foundation and provides a scalable, fault-tolerant runtime environment that is easily configured and assembled via a simple DSL. Application developers can focus on business logic as the developer friendly fixtures promote productivity and the DevOps can operationalize seamlessly as the orchestration is handled out-of-the-box.
The Spring ecosystem of projects provides an excellent foundation for building big data applications. The Spring XD project aims to build upon this foundation and provide a one stop shop solution for data-driven use-cases. This is in contrast to many other offerings that are more siloed and fragmented. One of the primary features is an out-of-the-box server that provides a consistent configuration model and runtime that spans traditional enterprise to big data use-cases.
You don't need to code anything up to get going: no build scripts, no IDE, no maven coordinates, no bundling or packaging. You can use a high level configuration DSL that will allow you to hit your head against the keyboard and get started quickly. However, if you choose to extend the platform (and we hope you will), Spring provides the foundation for extensibility.
Spring XD is designed with the goal to adapt to frameworks, standards and patterns that matter the most for enterprises. Adapting to Spring’s philosophy, Spring XD follows the mantra “simple things should be simple, complex things should be possible”.
For the curious, XD is an abbreviation for eXtreme Data.
$ cd spring-xd-1.0.3.RELEASE
xd:> stream create --definition "time | log" --name ticktock --deploy