# Deployment events We've discussed deployment events on multiple occasions, starting at the May meetup in Lund. Multiple proposals have been made but we've never reached a final conclusion on how deployments should be modeled with Eiffel. We could certainly spend more time talking about it, but if the past is any indication of the future we probably won't converge on anything soon unless we go about things differently. Here are some of the likely reasons we're having problems closing the discussion: - There simply are many valid solutions. Some of them might even look different but actually be the same if you look at them from another angle. - We haven't really settled on a goal or a scope. Exactly what kinds of use cases do we want to cover? This ambiguity risks leading us into circular discussions. (DORA metrics were a lodestar for the initial discussions at the May 2022 meetup but they're not specific enough to help in this regard.) ## Decisions to make before we start talking - Should we cover gradual deployments? - Right away, or just prepare for future support? - Does Eiffel need to be able to express details like traffic percentage, or should that be solved with a implementation-speciifc URI similar to data.uri for ED? - Should we include started/finished events to get low-resolution progress tracking? - If yes, should we attempt to do something similar for e.g. artifacts which currently just appear, i.e. there's no way of knowing that an artifact is about to be built. - Counterargument: The "partial existence" of an artifact is probably not that useful since its creation (usually) doesn't affect anything, while a partial deployment is likely to affect user traffic. - Is it enough to only describe that a deployment has taken place or do we want something analogous to TERCC but for deployments, i.e. describe that a deployment specification has been defined? - Is this something we can introduce later on? - What kinds of deployments should we cover? This could e.g. influence how we link to ED. - Cloud-like services? - Programs running on particular hosts? - Firmware being installed on devices (possibly not under "our" control)?