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!
This page (revision-7) was last changed on
02-Oct-08 22:21 PM, -0700
by Mark Saunders.
This page was created on
04-May-08 16:25 PM, -0700 by AndiEgloff.
More info...