April 2024 Newsletter (featuring 3.14 announcements)

Colleagues,

We are happy to announce LEAF’s latest release, LEAF 3.14. This quarter our team focused on enhancing usability; improvements in error handling, error message clarity, and Kubernetes dependency updates will help our users get real-time information to better target and more efficiently resolve issues.

Continue to the content below for more information about the changes in LEAF 3.14.


LEAF 3.14 Release Highlights :sparkles:

Check out the following highlights of the 3.14 release and visit our detailed release notes:

  • Improved exception-handling in empty collection methods. When an empty collection is passed into a DataObjectService, MetadataService, LookupListService, DataObjectHistoricalService, DataObjectLedgerService, or any service that is backed by a DataObjectService, the empty collection will now be returned instead of throwing an exception. Domain teams will no longer have to account for exception-handling checks for empty collection methods.

  • Added deprecation annotations in the MetadataConstantsParser. To help identify deprecated FieldMetadata instances within the MetadataConstantsParser, the MetadataConstantsParser now includes deprecation annotations for FieldMetadata instances found in older versions of BeanMetadata but absent in the most recent editions.

  • Enhanced exported BeanMetadata formatting. To increase the versatility of the BeanMetadataEditorService, BeanMetadata exports can now optionally be formatted by a MetadataFormatter, removing unnecessary fields and reducing the size of the output file. Read about the BeanMetadataEditorService to learn more.

  • Simplified the debugging process for the LEAF framework. Our team removed unnecessary reactive code to improve exception stack traces and debugability so your team can better identify, diagnose, and fix problems.

  • Added TopologySpreadConstraints configurations. The leaf-service and leaf-react-app Helm chart now support the setup of Topology Spread Constraints, allowing you to distribute pods across different failure domains within a cluster. Read Kubernetes’ Pod Topology Spread Constraints to learn more about this feature.

  • Added K9s CLI to LEAFctl installation. To leverage live pod status updates, you can install K9s with the leafctl install k9s command. For more information regarding K9s, visit the K9s documentation.

  • Updated LEAFctl to support Kubernetes v1.27. The latest version of LEAFctl will use K8s v1.27 by default; to update your K8s version in an older version of LEAFctl, you’ll need to tear down your existing cluster with leafctl k8s delete and then start a new cluster with leafctl k8s start -v 1.27.11. To further understand what has changed in K8s, read Kubernetes v1.27 release notes.


Announcements

  • Updated Prometheus Library Location: The com.leidos.leaf.prometheus package has been relocated to the LEAF Platform Service Java library: com.leidos.leaf.platform.prometheus. All 3.14 Service Generators will automatically incorporate this adjustment.

If you’re upgrading an existing service, follow the instructions below:

  1. Update the Prometheus implementation in the build.gradle file of your
    service(s): implementation com.leidos.leaf:framework-services-prometheus
    to implementation com.leidos.leaf:platform-services-prometheus.

  2. Within the application class of your service(s), update the
    PrometheusDropwizardExporter import statement:
    import com.leidos.leaf.prometheus.PrometheusDropwizardExporter; line to
    import com.leidos.leaf.platform.prometheus.PrometheusDropwizardExporter;.


LEAF Spotlight: LEAF in One Hour

Our team is excited to introduce a new training module, LEAF in One Hour, to showcase LEAF’s core capabilities. In one hour, you will create and deploy a social media application, experiencing the power of LEAF’s data-awareness, customizable logic, and extensive flexibility.

This course is facilitated through our integrated training environment and utilizes a variety of LEAF service generators to quickly produce an example application. With a few commands, you’ll generate a range of microservices, including a Data Service to store post data, a DataChangeEvent Subscription Service to help filter data changes, and a React App to dynamically display UI updates. Further, you will add custom logic with a hook to create a view count for each post.

If you or a member of your team is interested in taking this course or sharing it with others, it is available within the LEAF Knowledge Base. Reach out to our training coordinator if you or a team member need temporary credentials to begin building a LEAF-based application and further understand how LEAF can help your project!


Support

Get the support you need by participating in our LEAF community on Discourse or check out the other support services we offer.

1 Like