Microservices

In addition to data pipelines, Substation is flexible enough to deploy as either synchronous or asynchronous microservices.

Synchronous Microservices

Users can deploy Substation as a synchronous microservice using the AWS Lambda application and the AWS_LAMBDA_SYNC source. In this deployment pattern the application processes an object (JSON) and returns the processed object to the caller, allowing Substation to integrate with external systems and users that don't need an end-to-end data pipeline. Since the microservice is a full-fledged Substation application, all components of the system are available in the service.

Potential use cases include:

  • Centralized DNS resolution service that caches results in a cloud database
  • Threat intelligence service that performs indicator matching on arbitrary data
  • IP Address validation service that categorizes addresses by their type and geolocation

You can try the centralized DNS resolution service use case using this recipe:

Asynchronous Microservices

An asynchronous microservice has a much more flexible deployment pattern that is closer in design to a pipeline than it is a synchronous microservice. In this deployment pattern an external system sends a data processing request into an ingest resource and retrieves the response asynchronously (usually by polling) from a sink resource, such as a cloud bucket or database.

In this example a server sends requests to a message queue and then polls a database for the response: