Actioning on Darwinium
  • 14 Apr 2023
  • 3 Minutes to read
  • Contributors
  • Dark
    Light

Actioning on Darwinium

  • Dark
    Light

Article Summary

Darwinium can make real-time decisions and be used to decide actions to perform on risky or trusted interactions.

Use Darwinium to...

Receive data

  • Through header enrichment at any step
  • From response of an API call to Darwinium

Best for when you want to own the real time action, by just receiving Darwinium data and signals.

Perform direct intervention

  • Proxy actions to redirect/terminate
  • Dynamic content change

Best for when you want Darwinium to handle the real time action, no developer time needed.

Alert & create cases

  • Call URL for alert generation
  • Call URL for case management

Best for when the 'action' is not in real-time, but instead is creating an alert or a case for investigation.

Receive Data

Best for when you want to own the real time action, by just receiving Darwinium data and signals.

Header Enrichment

Darwinium attributes can be added directly to the headers of any request or response. Those become available to your systems that handle the request to inform on what action to take.

Any time prior:

0. Logic to execute on an interaction is defined in a Darwinium Step. When changed and 'deployed' from the Darwinium Portal, the revised logic is compiled and pushed to the CDN, ready to be run by a serverless compute process.


In the real time process:

  1. An end-user performs an interaction (eg. hits the login button), initiating an HTTP request
  2. The request is received by the CDN server, close to the user, and begins handling how to respond. If a Darwinium Step was deployed that matches the request, the corresponding serverless compute service (eg. Web Worker, Lambda Function) is kicked off in a separate thread.
  3. If the Step includes instructions to inject attributes into the headers of the request, the serverless compute process will do so, before the request is forwarded to the origin server (business).
  4. The origin server then handles the request, which now includes Darwinium insights within the headers to inform how to respond.
  5. Response from the origin is sent back to the CDN.
  6. If Darwinium Step includes logic to change the response, (for example changes to the body content like injecting profiling, adding Captcha and other dynamic content change), another serverless compute process will initiate in the CDN to do so, before sending the revised response back to the end-user.

How do I instruct Darwinium to enrich headers?

Attributes are mapped to be injected into headers from within the Data Mappings tab of the journey editor in the Darwinium Portal.

This is found by: Workflows (sidebar) > Click on .journey.yaml file > Click on Step > Data Mappings Tab.

The names and attributes to inject are defined by adding them to the Header Mappings.

(Note: The characters of header name need to be valid for HTTP request: so alphanumeric and _ - only)

Any attribute can be injected into the headers, but of particular interest:

Name (for example)
Attribute Value
Description & Purpose
dwn-identifier
identifier
The unique Darwinium identifier assigned to this request
dwn-journey-id
journey_id
The Darwinium identifier assigned to this journey (session)
dwn-device-id
profiling.
device.
identifier
Darwinium assigned device identifier
dwn-result
outcome['CHAMPION'].
models.
signal_categories
High level risk signals that triggered
dwn-category
outcome['CHAMPION'].
models.
signals
All risk signals that triggered
dwn-scores
outcome['CHAMPION'].
models.
scores
Model risk scores that were evaluated

For more details on Injection methodology, see Injection and Extraction Menu

I still don't understand what headers are?
You can think of headers like what you would find in the letterhead of a physical letter. You would have lots of questions if receiving a physical letter that only had the body of writing. Who is it from? When was it sent? Do they know me? So in a letter you expect to find details at the top: company name and address that is sending, your own address, the date it was sent etc. The headers on Requests/Responses serve a similar purpose; it is metadata on who is sending the request and how to interpret it properly.

API Call to Darwinium

Darwinium can also be called via API, and returns all data associated to a previous journey or interaction.

Any time prior:

0. A Darwinium API Step is defined in the Darwinium Portal. When deployed, the logic is pushed to the CDN, forming an API endpoint there.


In the real time process:

  1. API call is made to the endpoint. The Darwinium identifier/journey_id of interest is included as a parameter.
  2. The API call is received. The corresponding serverless compute service (eg. Web Worker, Lambda Function) is initiated to retrieve the data and run any additional logic that was defined.
  3. The process will retrieve all data related to the identifier on the request and add it to the response back.
  4. The response with Darwinium data is received back and can be used for decisioning.

A common design pattern is to return the Darwinium identifier and/or journey_id on a header at the time of the request, in anticipation of using it to make an API call later.

For more details, see articles within API Integration.


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.