func (s *Service) Stop(ctx context.Context) error {
	if s.s != nil {
		s.s.Close()
		s.s = nil  
	}
	return nil
}
Stop closes the underlying `gocql.Session`: if everything goes smoothly,
the service is marked as 'stopped'; otherwise, an error is returned.


Stop is used by BandMaster's internal machinery, it shouldn't ever be called
directly by the end-user of the service.
package cql
import (
	"context"
	"github.com/gocql/gocql"
	"github.com/znly/bandmaster"
)
type Service struct {
	*bandmaster.ServiceBase  
	cc *gocql.ClusterConfig
	s  *gocql.Session
}
func New(cc *gocql.ClusterConfig) bandmaster.Service {
	return &Service{
		ServiceBase: bandmaster.NewServiceBase(),  
		cc:          cc,
	}
}
func (s *Service) Start(
	ctx context.Context, _ map[string]bandmaster.Service,
) error {
	var err error
	if s.s == nil {
		s.s, err = s.cc.CreateSession()
		if err != nil {
			return err
		}
		if err = s.s.Query(
			"SELECT cql_version FROM system.local",
		).WithContext(ctx).Exec(); err != nil {
			_ = s.Stop(context.Background())
			return err
		}
	}
	return nil
}