code: func (c *MemoryGroupService) GroupCreateWithTTL(ctx context.Context, groupName string, ttlTime time.Duration) error {
  	memoryGroupsMu.Lock()
  	defer memoryGroupsMu.Unlock()
  
  	if _, ok := memoryGroups[groupName]; ok {
  		return constants.ErrGroupAlreadyExists
  	}
  
  	memoryGroups[groupName] = &MemoryGroup{LastRefresh: time.Now().UnixNano(), TTL: ttlTime.Nanoseconds()}
  	return nil
  }
docs: // GroupCreateWithTTL creates a group with TTL, which the go routine will clean later