Kuali Service Bus (KSB)

Why Use KSB?

  • Ease of Use
  • Service Based Model
  • Excellent Spring based integration

What is KSB?

Kuali Service Bus (KSB) is a simple service bus geared towards easy service integration in an SOA architecture. In a world of difficult to use service bus products KSB focuses on ease of use and integration.

KSB Features

  • Message Driven Service Execution

    Bind standard java bean services to messaging queues for message driven beans.

  • Transactional Asynchronous Messaging

    Call services asynchronously to support a 'fire and forget' model of calling services. Messaging participates in any existing JTA transactions, meaning messages are not sent until the current running transaction is committed and are not sent if the transaction is rolled back. Increase performance of service calling code by not waiting for a response.

  • Synchronous Messaging

    Call any service on the bus using a request-response paradigm.

  • Queue Style Messaging

    Supports executing java services via message queues. When a message is sent to a queue, only one service listening for messages on the queue is given the message.

  • Topic Style Messaging

    Supports executing java services via messaging topics. When a message is sent to a topic, all services listening for messages on the topic receive the message.

  • Quality of Service

    Determines how queues and topics handle messages with problems. Time to live is supported, giving the message a configured amount of time to be handle successfully before exception handling is invoked for that message type. Messages can be given a number of retry attempts before exception handling is invoked. Exception handlers can be registered with each queue and topic for custom behavior when messages fail and Quality of Service limits have been reached.

  • Service Discovery

    Services are automatically discovered along the bus by querying against the Service Registry using the service name. There is no need for a KSB client to know the end-point URL of the service it is trying to invoke.

  • Reliability

    Messages sent to services via queues or synchronous calls automatically fail over to any other services bound to the same name on the bus, should problems arise. Services that are not available are removed from the bus, until they come back online, at which time they will be rediscovered for messaging.

  • Persisted Callback

    Callback objects can be sent with any message. This object will be called each time the message is received (think topic vs. queue) with the response of the service. In this way we can deploy services for messaging that actually return values.

  • Primitive Business Activity Monitoring

    If turned on, each call to every service, including the parameters pass into that service are recorded in the database. This can be useful for debugging.

  • Spring Based Integration

    KSB is designed with Spring based integration in mind. A typical scenario is making an existing spring-based service available for remote asynchronous calls.

  • Programmatic Based Integration

    KSB can be configured programmatically if Spring configuration is not desired. Services can also be added and removed from the bus programmatically at runtime.