Github user mans2singh commented on the issue:

    https://github.com/apache/nifi/pull/239
  
    I also recommend some modifications to the property definitions in both 
AbstractKinesisConsumer and AbstractKinesisProducer:
    
    * Use `name` as a key and `displayName` for the UI text, rather than just 
`name`.  This is a recommended best practice that has come up recently in other 
PRs.
    * Consider using NiFi notation for data sizes like "1 KB" instead of a long 
count of bytes.  Some properties include KINESIS_PRODUCER_AGGREGATION_MAX_SIZE, 
KINESIS_PRODUCER_COLLECTION_MAX_SIZE.
    * Consider using NiFi notation for time span inputs like "1 min" instead of 
a long count of milliseconds.  Some properties include 
KINESIS_PRODUCER_MAX_BUFFER_INTERVAL, KINESIS_PRODUCER_TLS_CONNECT_TIMEOUT, and 
KINESIS_PRODUCER_REQUEST_TIMEOUT, 
KINESIS_CONSUMER_DEFAULT_FAILOVER_TIME_MILLIS, 
KINESIS_CONSUMER_DEFAULT_IDLETIME_BETWEEN_READS_MILLIS, 
KINESIS_CONSUMER_DEFAULT_PARENT_SHARD_POLL_INTERVAL_MILLIS, 
KINESIS_CONSUMER_DEFAULT_SHARD_SYNC_INTERVAL_MILLIS, 
KINESIS_CONSUMER_DEFAULT_TASK_BACKOFF_TIME_MILLIS, 
KINESIS_CONSUMER_DEFAULT_METRICS_BUFFER_TIME_MILLIS.
    
    The 
[BinFiles](https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java)
 class contains examples of defining both data size and time span properties.
    
    * Boolean properties should have an allowableValues list.  Some do, like 
KINESIS_PRODUCER_AGGREGATION_ENABLED, and some do not - 
KINESIS_CONSUMER_DEFAULT_DONT_CALL_PROCESS_RECORDS_FOR_EMPTY_RECORD_LIST and 
KINESIS_CONSUMER_DEFAULT_CLEANUP_LEASES_UPON_SHARDS_COMPLETION.
    * The producer "Max Buffer Interval" KINESIS_PRODUCER_MAX_BUFFER_INTERVAL 
description says that the units is seconds, and the default is 60.  From 
looking at the [JavaDoc on 
setRecordMaxBufferedTime()](https://github.com/awslabs/amazon-kinesis-producer/blob/master/java/amazon-kinesis-producer/src/main/java/com/amazonaws/services/kinesis/producer/KinesisProducerConfiguration.java#L1063),
 the unit appears to be milliseconds.  Do I understand that correctly?
    * I like that you provided defaults for all of the properties where it is 
possible.  I didn't have to fill out much to get started, which is always nice. 
 There remain a bewildering array of properties derived from the underlying 
KPL/KCL configuration, and I'm not sure they all make sense to expose.  In many 
cases, the processor implementation effectively includes an answer, doesn't it? 
 What different behavior would a user expect from changing 
KINESIS_PRODUCER_FAIL_IF_THROTTLED, or 
KINESIS_CONSUMER_DEFAULT_DONT_CALL_PROCESS_RECORDS_FOR_EMPTY_RECORD_LIST?



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to