Apache Streams (incubating)

I’ve been involved in a new Apache project (incubating) called Apache Streams.  It’s my first time working in the ASF.  A description of the project is below:

Apache Streams is an effort undergoing incubation at The Apache Software Foundation (ASF) sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Apache Streams (incubating) is a lightweight (yet scalable) server for ActivityStreams. activitystrea.ms

The preliminary architecture for the Apache Streams (v0.1) project is heavily influenced by Enterprise Integration Patterns and general messaging architecture. It is the goal of the project to support both a lightweight servlet container deployment and a robust distributed deployment. The initial architectural patterns selected are being developed with an Enterprise Service Bus based architecture in mind with target implementations of Apache ServiceMix and Apache Camel.

Component Descriptions

Activity Publisher: Entity external to Activity Streams server that creates Activities per the activitystre.ms specification

Activity Publisher Endpoint Adapter: Provides protocol interfaces for Activity Publishers to use when registering as an Activity Publisher and when publishing Activities

Publisher Registration Service: Authorizes Activity Producers to publish Activities to Activity Streams server and configures a dedicated Activity Consumer for the Activity Publisher

Activity Routing Service: For pushed Activities, this service routes the Activity to the appropriate Activity Consumer

Activity Consumer: Consumes Activities from Authorized Activity Publishers. An Activity Consumer is set up to be either a push or pull service. A Pull Activity Consumer will poll an Activity Publisher for new Activities, and a Push Activity Consumer will receive new Activities from the Activity Router Service.

Activity Splitter: Activity Consumers use the Activity Splitter to create discrete Activity messages from a collection of Activities and place them for processing on the Activity Queue.

Activity Aggregation Service: Pops Activities from the Activity Queue and notifies Activity Streams Subscriber Delegates when a new Activity Stream they have subscribed to is available.

Activity Streams Subscriber: An external entity that is interested in subscribing to aggregated Activity Streams based on some criteria. Expects Activities adhering to activitystre.ms specification

Activity Streams Subscriber Delegate: Defines the aggregation of Activity Streams on behalf of Activity Streams Consumers and provides notification to its Activity Streams Subscriber when new aggregated Activity Streams are available

Activity Streams Subscriber Endpoint Adapter: Provides protocol interfaces for Activity Streams Subscribers to use when subscribing to Activity Streams and polling for new Activity Streams

Activity Streams Subscriber Registration Service: Creates Activity Streams Subscriber Delegates for each Activity Streams Subscribers.

Activity Streams Router: Handles the routing of poll requests from Activity Streams Subscribers to Activity Streams Subscriber Delegates and push notifications from Activity Streams Subscriber Delegates to Activity Streams Subscribers


Jason is an technical business professional who has deep hands-on technical experience as a software engineer and architect and has leveraged this experience to transition from project leadership into product management. He holds a MS in Computer Science from Northeastern University and an MBA from Babson College. He is continuously striving to learn and experience new challenges.

Posted in Software Development

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: