- Index

< Previous |  |

# Extending StreamBase

StreamBase provides the following ways to extend StreamBase functionality by writing your own custom code.

## Developing Client Applications

You can create two kinds of custom StreamBase client applications:

Enqueue clients

  Applications that feed data to the Input Streams of a running EventFlow fragment, and are sometimes called producer clients. An enqueuer might be a feed from an external source, or part of your testing procedure.

Dequeue clients

  Applications that dequeue data from one or more Output Streams of a running EventFlow fragment, and are sometimes called consumer clients. You might use dequeue clients to further process StreamBase output in a spreadsheet or display it in a graphical application, or as part of a testing process.

For more information see Developing Client Applications.

## Developing Custom Functions

StreamBase includes many built-in functions in its expression language, but if you need different functionality, you can use the StreamBase API to add your own. The StreamBase Java Function wizard can generate stubs for custom functions, which you then customize for your specific needs. See Using the StreamBase Java Function Wizard.

## Developing Custom Operators

You can extend StreamBase by writing your own custom Java operators, as described in Developing StreamBase Operators and Adapters.

## Developing Custom Adapters

You can extend StreamBase by writing your own custom adapters, as described in Developing StreamBase Operators and Adapters.

## Developing Monitoring Applications

You can view performance statistics for a running EventFlow fragment, such as the number of tuples each operator processes per second, the time required to process each tuple, and how much CPU time is used by each thread. See Monitoring and Profiling Applications.