Developing applications by hand, while may seem simple at first, tend to grow unwieldy and unnecessarily time-consuming when faced with constantly changing business requirements. Without a flexible platform to stand on, the gap between new business requirements relative to the time it takes to provide solutions only grows larger. Not to mention the challenges brought about by limited resources and new technologies - it's easy to fall behind. To alleviate these difficulties, TORO created Martini.
Martini empowers developers by providing a robust and flexible platform for addressing application requirements. With deployability in mind, the platform revolves around packages for composing logically-coherent applications that can be deployed and distributed in seconds.
Weaving services that communicate with any type of service shouldn't be difficult; hence, the fruition of Gloop, the application's integration language. Gloop enables users to rapidly develop services that consume and transform data from your WSDL or WADL-facing legacy systems, up to modern systems powered by API specifications such as OpenAPI or Swagger. Any HTTP-based transport is supported out-of-the-box. This paradigm extends to the extraction and manipulation of data from various data sources such as SQL and flat files.
Exposing new services should be a breeze. By leveraging Gloop, writing APIs that implement business requirements in SOAP or REST can be done in a cinch. Presenting them beautifully with a test bench is effortless, too.
Painless integration shouldn't come at the cost of flexibility. By harnessing the JVM, Martini works seamlessly with services written in Groovy. Providing first-class support, the platform also exposes one-liner methods that accomplish the basic blocks of integration.
Workflows, orchestration, and event-based executions - are features normally available only on enterprise vendors. Martini makes these features accessible with Flux, its workflow engine. The platform also provides endpoints that can natively consume and react on data from the file system, an email, an FTP server, a Jabber message, JMS messages, RSS feeds, and more.
Complete the path of becoming an integration ninja by diving onto the next sections.
Services are the fundamental building blocks of Martini applications. They are the primary means by which developers define behaviors in an application. Services are similar to functions, where they consist of inputs and outputs. Inputs are data taken in for processing, or data used to affect the process. Outputs, on the other hand, are values returned by a service.
Every service is written to perform a particular task. They are reusable, interoperable, self-contained units of code. They can be used in a variety of contexts, including but not limited to: Martini packages1, Martini endpoints, APIs, and even other services.
There are a number of service types you can choose from, each with unique features. In the following sections, we will take a look at all of these types, and how they can be used to implement elegant integration solutions.
Low code application development
Gloop and Flux allow low-code application development in Martini. Together with one-liners, you can build applications that do more with even less code.