Monday, July 15, 2019

v0.7.0 More is Beta-er

With this next release of the Travetto framework, we march even closer to the release candidate phase. At this point in time there should not be any new major functionality in the next release. The next release should primarily be bug fixes and underlying architectural improvements. The two final areas that need to be tackled for RC are:

AWS Lambda Support

Already in progress, just need to find a good way of splitting out modules if possible. The goal is for initially to have one AWS lambda per Rest endpoint, and to only include the dependencies necessary for that endpoint. This should allow for minimal size of lambda functions, which should also help with cold start performance. In the long run, the goal is to support all serverless implementations, but AWS is an easy starting point.

(Attempt to) Integrate the Typescript type checker

As it stands now, the code transformations (Schema/Model/Rest/Logging/etc.) now work off of single files, and do not do any type resolution. While this works well enough, there are quite a few corner cases, specifically with things like return types and interfaces. The goal is to be 100% correct with the Typescript compiler, but that generally comes at a performance cost for application startup. Hopefully we can integrate the type checker to provide a richer developer experience (and maybe even supporting interfaces in lieu of classes where applicable).
This is a big step forward for the project as nearly every major component has been rewritten at least once, and real world projects are proving out the stability and robustness of the framework at large.

To get started, just use our getting started guide.

Changes

Version 0.7.0 changes (since 0.6.0):

Major Changes

  • Updated to Node v12 and Typescript 3.5.x as a minimum requirement
  • SQL support in the Model Service (postgres and mysql for initial rollout)
  • Moved to async stack traces, which resulted in a substantial performance improvement
    • Requires node 12.x for full stack traces now
  • Added xUnit as test format output for better integration with build systems
  • Proper GEO distance/within queries for Mongo and Elasticsearch
    • SQL support is pending
  • Swagger/Client Generation Fixes for ALL endpoints as well as endpoints with path parameters
    • Switched over to openapitools as swagger-codegen-cli was out of date
  • Rewrote all code transformers to follow specific pattern/framework
    • Code visiting is now in a single pass
    • Focuses on methods/fields/classes as specific type of visitation
    • Makes it very clear what each transformer does and how to modify it

Minor Fixes

  • Changes to ModelService to support rest-session being able to persist properly
  • Yeoman Genenrator has been updated, and the internal dependency management has been rewritten
  • Library updates to maintain latest working versions
  • Brought support for Map/Set to route serialization as JSON objects and arrays
  • Resolved issues with fastify and path determination
  • Properly support redirects in Net util
  • Worker pools now support async operations fully
  • Resolved CORS issue with headers/methods
  • General bug fixes

No comments:

Post a Comment