code: func NewKinesisReactor(reactor KinesisReactor,
  	kinesisStream gocf.Stringable,
  	startingPosition string,
  	batchSize int64,
  	additionalLambdaPermissions []sparta.IAMRolePrivilege) (*sparta.LambdaAWSInfo, error) {
  
  	reactorLambda := func(ctx context.Context, kinesisEvent awsLambdaEvents.KinesisEvent) (interface{}, error) {
  		return reactor.OnKinesisMessage(ctx, kinesisEvent)
  	}
  
  	lambdaFn, lambdaFnErr := sparta.NewAWSLambda(reactorName(reactor),
  		reactorLambda,
  		sparta.IAMRoleDefinition{})
  	if lambdaFnErr != nil {
  		return nil, errors.Wrapf(lambdaFnErr, "attempting to create reactor")
  	}
  
  	lambdaFn.EventSourceMappings = append(lambdaFn.EventSourceMappings,
  		&sparta.EventSourceMapping{
  			EventSourceArn:   kinesisStream,
  			StartingPosition: startingPosition,
  			BatchSize:        batchSize,
  		})
  	if len(additionalLambdaPermissions) != 0 {
  		lambdaFn.RoleDefinition.Privileges = additionalLambdaPermissions
  	}
  	return lambdaFn, nil
  }
docs: // NewKinesisReactor returns an Kinesis reactor lambda function