Index Changes
Fuji Home

Integration Flow Language Overview

Or jump directly to IFL Specification

Motivation

In our effort to make project Fuji simpler and more productive we were looking for way to simplify how composite applications are defined.

What attracted us to a domain specific language (DSL) is:

  • Makes it feasible to type from text editor, focus is Productivity
  • Easier to read without angle brackets “noise” in XML
  • Easy to add tooling on top
  • Is targeted at the specific problems in the domain

There does not seem to be a concise language out there that solves this domain, hence we created a community to help define such as DSL.

Integration Flow Language Overview

The Integration Flow Language (IFL) is an DSL with the following goals:
  • Declare the concrete routing ("flow") of messages between services
  • Provide for a productive work-flow to build services and compose them
  • Allow for the most common message routing constructs to reduce the need for complex orchestration languages for basic tasks

To try and achieve this IFL takes a message based integration view, let's look at an example.

IFL Example

This example receives entries from an RSS feed, filters out unwanted entries in a JRuby filter, then fowards the message in parallel to an instant messaging client and a file archive.

   rss "cnnfeed"
   jruby "filter"
   xmpp "IM"
   file "archive"

   route do
      from "cnnfeed"
      to "filter"
      broadcast do 
         route to "IM"
         route to "archive"
      end   
   end

The language uses

  • Basic message routing constructs to link service consumers and providers
  • A "Pipes and Filters" design pattern construct (chain invocations)
  • Leverages enterprise integration patterns principles

Specification and More Details

Shape the development of this language, give feedback on the users mailing list and join the community!

JSPWiki v2.4.100
[RSS]
« Home Index Changes Prefs
This page (revision-7) was last changed on 02-Oct-08 22:21 PM, -0700 by Mark Saunders