Gravatar

Solene Sossah

Software Engineer


March 2025 Newsletter

SDK News Corner

Running Synchronous Functions

In a recent update, we introduced the run_async feature, allowing you to run non-async functions asynchronously in the background thread without blocking the Tornado event loop. This makes it easier to offload time-consuming tasks without affecting app responsiveness.

How it works

def time_consuming_task(data):
    return _time_consuming_call(data)
		
# Run in the background with `run_async`
await self.run_async(time_consuming_task, data=data)

Cache Updates: New Storage Level Support & Deprecated Parameters

This month's update brings improvements to caching, especially for multitenant environments.

  • The @cache decorator now includes a new storage_level parameter, allowing you to specify cache data scope (e.g. Service, Stack, or Session). By default, cache calls are now locked to the customer environment.
  • Additionally, the use_session_cache parameter has been deprecated. We recommend using the new storage_level parameter with the value StorageLevel.Session.

Example:

@cache(time=300, key='cacheKey', storage_level=StorageLevel.Session)
def my_function(foo, bar):
    # Function logic here

Documentation Updates: New Guides

We've expanded our documentation with new guides on Summary Logs and Log Replay, to help you troubleshoot and manage logs more effectively. The Summary Line feature provides a quick overview during debugging, while Log Replay allows you to replay logs for critical errors for better context.

Mobile SDK News

Android API Target

The Q2Mobility Android app now targets Android API level 35 (Android 15). The minimum supported Android API continues to be level 29 (Android 10). The planned update to the Android Gradle plugin has been rescheduled to a future release. Stay tuned for more information.

Swift Package Manager

We are migrating our native modules from CocoaPods to Swift Package Manager (SPM) with our May release of the Q2Mobility iOS app, which is scheduled for 05/14/25. This transition will streamline dependency management, improve build performance, and enhance code maintainability. As we work through this transition, we may be reaching out to you with questions regarding support of SPM within your module.

Portal News

New Application Scope Editor

New Application Scope Editor

To easily add or delete scopes on developer.q2.com, this component has been changed to a client side rendered component. This change decreases loading times and makes it more clear when updates are saved.

The team believes you can move a lot faster with a server side rendered application, but certain complex components will flow better and sometimes will be more performant with a client side rendered component.

Tecton News

We're excited to announce the latest update to our Design System with several key improvements across testing capabilities, component functionality, and platform performance.

Tecton Codepen

Developers can now access the Tecton Codepen playground linked in our documentation site, allowing for faster prototyping and experimentation with our component library.

Enhanced Testing

New test methods have been created for the Area Chart, Donut Chart, Vertical Stepper, and Currency components. These additions make it easier to validate your implementation of these components, ensuring consistent behavior across your applications.

Component Updates

The Loc component can now be used inside the Option component, and the Option component will update its display attribute to reflect the translated value from the Loc component. We also added support for using localization strings directly in the display attribute and/or innerText of the Option component.

The Donut Chart has been updated to intelligently prevent duplicate colors from rendering adjacent to each other, improving visual clarity with large data sets.

Performance Optimization

Developers utilizing the q2-design-system package now have the option to fetch Tecton elements from the CDN rather than bundling into apps at runtime, reducing initial load times and bundle sizes.


For more information on implementing these features, please refer to our documentation.

Caliper API News

Get System Notifications

Get System Notifications Response Example

The new Get System Notifications endpoint gives you better control over your system notifications. This feature allows you to easily fetch a list of enabled system notifications or retrieve the payload of specific notifications, making it easier to monitor and respond to important events in your application.

Cancel Generated Transaction

You can now cancel processed transactions using the Cancel Generated Transaction endpoint, setting them to a Processed or CsrActionItem state. Previously, this endpoint only supported canceling transactions in the authorized or drafted state.

Additional Updates

We've removed an enforcement on the Send Notification endpoint. It is no longer required to provide a TargetUserID or SSOIdentifier when sending SMS notifications. This update resolves 404 errors encountered when trying to send SMS notifications.

Latest Releases

Caliper SDK (Python) v2.261.1 - CHANGELOG

Tecton SDK (Javascript) v1.52.0 - CHANGELOG

Marketplace (Python) v0.8.9 - CHANGELOG

Caliper API (Python) v1.42.0 – CHANGELOG