Can a TF provider just manage its own state instead of using a meta value?

Does the value returned from a ConfigureContextFunc serve any necessary function for the SDK/Terraform core? My understanding is that it’s purely a provider-defined value. If that’s the case, then is there any reason my provider couldn’t manage its own state and ignore the meta value altogether?

for example:

type MyProvider struct {
	client MyClient

func (p MyProvider) Provider() *schema.Provider {
	return &schema.Provider{
		Schema: map[string]*schema.Schema{
			"id_token": {
				Type:       schema.TypeString,
				Required:   true, 
		ConfigureContextFunc: p.configure, // a method on this instance
		ResourcesMap: map[string]*schema.Resource{
			"myprov_thing": {
				CreateContext: p.create, // operations are methods on this instance
				DeleteContext: p.delete,
				UpdateContext: p.update,
				Schema: map[string]*schema.Schema{
					"name": {
						Type:     schema.TypeString,
						Required: true,

func (p *MyProvider) configure(_ context.Context, d *schema.ResourceData) (interface{}, diag.Diagnostics) {
	// Set field of the instance
	p.client = MyClient{ 
		Token: d.Get("id_token").(string),

	// return nothing to the SDK
	return nil, nil

func (p MyProvider) create(ctx context.Context, d *schema.ResourceData, _ interface{}) diag.Diagnostics {
	res := p.client.CreateThing(ctx, Request{ Name: d.Get("name").(string) }, )
	return nil

func main(){
	prov := MyProvider{}
	plugin.Serve(&plugin.ServeOpts{ ProviderFunc: prov.Provider	})

Is the config function ever called more than once in the same process, like maybe in the case of aliased providers with different configs?

Is HashiCorp not active in this forum?

Anyone here? Beuller?

As far as I can tell, Terraform is creating separate processes for each aliased provider. I can’t think of any reason why this shouldn’t work as long as this holds true. Is that something I can rely on?