Menu
Defer is reaching the end of its service life on May 1, 2024. Please reach out to support@defer.run for further information.
Changelog
June 14th, 2023

Advanced Execution filtering
with Metadata

Bryan FriminBryan FriminCTO
Emile RéEmile Founding Engineer

Beyond being a dashboard, the Defer Console aims to become the best control panel for operating background operations.

We recently introduced the Functions Insight UI, followed by Execution filters and new actions (pause, auto-archive) to provide a better experience as the number the executions and functions per project grew.

As part of this vision, we are happy to release a major feature to help narrow down specific executions: Function Metadata.

 

 

Introducing: Function Metadata

As your applications grow, the listing of a given Function's executions becomes hard to navigate:

Untitled

Even with pages of 25 executions and actual time filters, it is hard to narrow down a specific set of executions.

 

For this reason, the Function Metadata feature allows you to attach some metadata to executions that become filters in the Defer Console.

Attaching metadata to execution is achieved by using addMetadata() from @defer/client:

import type { NextApiRequest, NextApiResponse } from "next"import { addMetadata } from "@defer/client"
import sendEmailsFn from "./sendEmails"
export default async function handler(  req: NextApiRequest,  res: NextApiResponse<{    ok: boolean  }>) {  const sendEmails = addMetadata(sendEmailsFn, { email: req.body.email })  await sendEmails(req.body.email)
  res.status(200).json({    ok: true,  })}

Find a working example in the defer.demo repository.

 

💡  Limitations

There is no limit to the number of metadata assignable to an execution; however, for now, values must be string.

 

New executions coming with metadata will make the Metadata filter appear in your Execution list' filters:

Untitled

Once a specific metadata is selected, you can filter to a value:

Untitled

Combined with the Executed At and Status filters, filtering specific executions is now straightforward:

Untitled

 

 

Defer Console: what's coming

Bryan and I built background processing solutions in multiple companies (ex: at Algolia).

Building internal dashboards to operate background jobs and workflows was a must-have feature to scale technical and customer support.

Those internal dashboards always contained standard features: advanced filtering, search, recovery, and debugging actions, along with proper observability tools (infra, operations, etc).

 

 

The Defer Console will constantly improve with its ambitious roadmap and frequent releases, with rolling out soon:

 

  • Live logs for Builds and Executions

Long-running Builds or stuck Executions get frustrating without a way to inspect them. As many of you asked, we will soon release the support for live logs for Builds and Executions.

 

- Cancellable running functions

Mistakes happen, and the Defer Console should help you mitigate them quickly. Again, a long-awaited Community feature will soon be released: cancel running functions.

 

- Revamped Execution's view

The current Execution's view hasn't evolved much since the beginning of Defer and will soon be enriched with better live metrics - live logs -, essential technical information (detailed timings, metadata) and more actions (rerun with new arguments).

Join the community and learn how to get started, and provide feedback.
Stay tuned about our latest product and company updates.
Start creating background jobs in minutes.
Copyright ©2024 Defer Inc.