sst / ion

❍ — a new engine for SST
https://ion.sst.dev
MIT License
1.09k stars 129 forks source link

Extend / Eject story with SST ION #381

Open amir-ziaei opened 1 month ago

amir-ziaei commented 1 month ago

Hello,

I've recently been exploring SST (ION engine) and find it to be a fantastic tool. However, as I consider integrating it into a work-related project, I have some concerns which I'm hoping to hear the team's response to.

Extendability

Is there a plan in place for handling scenarios where some infra components are not yet supported by SST? Could you provide insights into how you expect the consumer to address such gaps? Are there any plans on your end to implement a plugin interface to extend support for additional components?

Ejectablity

In the event that a user wishes to discontinue using SST, is there a means to access the underlying IoC that SST manages? How easy would that be?


Looking forward to hearing from the team! Thanks!

san4d commented 1 month ago

Not part of the team but am using Ion and used v2.

All SST components are Pulumi components, so the "lock in" is with Pulumi. In my project, I'm using both SST components and Pulumi components together seamlessly. When there isn't a prebuilt component, I drop down and write my own Pulumi component.

If I wanted to move off of SST, I would reimplement each of the crafted SST components myself as Pulumi components (and have to figure out SDLC things, like a replacement for live lambda). If I wanted to move off of Pulumi, that would be a larger task. You can always look at your cloud provider to see the exact resources created. I recommend doing this anyhow.

https://ion.sst.dev/docs/components/

jayair commented 1 month ago

Yeah @san4d basically covered it all, I would add that the extend path when Ion does not support it is:

iDVB commented 1 day ago

If I'm understanding this correctly I think @thdxr mentioned that ion extending issues is something that is being fixed? https://discord.com/channels/983865673656705025/1177071497974648952/1257351758984904758

Do we have a public roadmap and where on it is this work? I ask because it may make more sense for us to convert from sstv2 -> ion after that point. So we will have a path to convert all our custom CDK/SST constructs that in many cases use or extend SST constructs.