The developers behind Apple’s Swift language have introduced an open source project for the Swift server ecosystem, called Swift Service Lifecycle, to aid server applications with managing start-up and shutdown sequences.
Accessible from GitHub, Swift Service Lifecycle is a Swift package that cleanly starts up and shuts down an application, freeing resources before exiting. Also provided is a
Signal-based shutdown hook to shut down on signals
Swift Service Lifecycle was designed with the notion that each application has start-up and workflow-like logic that often is sensitive to failure and difficult to do correctly.
Start-up sequences include actions like initialising thread pools, warming up caches, running data migrations, and performing other types of state initialisation prior to accepting events or taking traffic. Shutdown sequences free up resources that hold on to file descriptors or other resources that could leak if not correctly cleared.
Swift Service Lifecycle codes this common need for start-up and shutdown logic in a safe, reusable way that is non-framework-specific.
The recommended way to use the library is to create a
ServiceLifecycle instance in an application’s
main method and register
LifecycleTasks. When calling the
ServiceLifecycle will start these tasks in the order registered.
ServiceLifecycle also registers a signal handler that traps
Swift’s potential on the server has grabbed the attention of companies such as IBM. Swift was founded in 2014 as the successor to Apple’s Objective-C language for developing on Apple platforms such as MacOS and iOS.