code: public static boolean createSharedTable(long readCapacity, long writeCapacity) {
  		if (StringUtils.isBlank(SHARED_TABLE) || StringUtils.containsWhitespace(SHARED_TABLE) ||
  				existsTable(SHARED_TABLE)) {
  			return false;
  		}
  		try {
  			GlobalSecondaryIndex secIndex = new GlobalSecondaryIndex().
  					withIndexName(getSharedIndexName()).
  					withProvisionedThroughput(new ProvisionedThroughput().
  							withReadCapacityUnits(1L).
  							withWriteCapacityUnits(1L)).
  					withProjection(new Projection().withProjectionType(ProjectionType.ALL)).
  					withKeySchema(new KeySchemaElement().withAttributeName(Config._APPID).withKeyType(KeyType.HASH),
  							new KeySchemaElement().withAttributeName(Config._ID).withKeyType(KeyType.RANGE));
  
  			getClient().createTable(new CreateTableRequest().withTableName(getTableNameForAppid(SHARED_TABLE)).
  					withKeySchema(new KeySchemaElement(Config._KEY, KeyType.HASH)).
  					withSSESpecification(new SSESpecification().withEnabled(ENCRYPTION_AT_REST_ENABLED)).
  					withAttributeDefinitions(new AttributeDefinition(Config._KEY, ScalarAttributeType.S),
  							new AttributeDefinition(Config._APPID, ScalarAttributeType.S),
  							new AttributeDefinition(Config._ID, ScalarAttributeType.S)).
  					withGlobalSecondaryIndexes(secIndex).
  					withProvisionedThroughput(new ProvisionedThroughput(readCapacity, writeCapacity)));
  		} catch (Exception e) {
  			logger.error(null, e);
  			return false;
  		}
  		return true;
  	}
docs: Creates a table in AWS DynamoDB which will be shared between apps.
  @param readCapacity read capacity
  @param writeCapacity write capacity
  @return true if created