Lancé par les développeurs à l'origine du langage Swift d'Apple, le projet open source Swift Service Lifecycle pour l'écosystème de serveurs Swift doit permettre aux applications serveur de gérer les phases de démarrage et d'arrêt. Accessible depuis GitHub, Swift Service Lifecycle consiste en un paquet Swift qui permet de démarrer et d'arrêter proprement une application, et par la même de libérer des ressources avant de la quitter. Un hook d'arrêt basé sur le Signal est également fourni pour arrêter l’application sur des commandes telles que TERM ou INT.

Le design de Swift Service Lifecycle est basé sur l'idée que chaque application répond à une logique de démarrage et de workflow souvent sensible aux pannes et difficile à réaliser correctement. Généralement, les séquences de démarrage sont précédées de plusieurs actions comme l'initialisation des pools de threads, la réactivation des caches, l'exécution des migrations de données et d'autres types d'initialisation d'état avant l’acceptation des événements ou l’entrée des données. Les séquences d'arrêt libèrent les ressources mobilisées par les descripteurs de fichiers ou d'autres ressources qui pourraient être perdues si elles ne sont pas correctement effacées.

IBM soutien le projet

Swift Service Lifecycle apporte une solution pour coder ce besoin commun de logique de démarrage et d'arrêt et faire en sorte que tout se passe manière sécurisée, reproductible et indépendante du framework. Pour utiliser la bibliothèque de manière appropriée, il est recommandé de créer une instance de ServiceLifecycle dans la méthode principale d'une application et d'enregistrer les LifecycleTasks. Quand la fonction de démarrage est appelée, ServiceLifecycle démarre les tâches dans l'ordre enregistré. ServiceLifecycle enregistre également un gestionnaire de signal qui piège TERM ou INT.

Ce potentiel de Swift côté serveur a suscité l'attention d’entreprises comme IBM. Swift a été fondé en 2014 pour succéder au langage Objective-C d'Apple utilisé pour développer sur des plateformes comme MacOS et iOS d’Apple.