Skip to content

Latest commit

 

History

History
83 lines (70 loc) · 6.33 KB

config.md

File metadata and controls

83 lines (70 loc) · 6.33 KB

Configuration Options

mongodb:
    default_database_uri : Each service that requires a database may be configured individually with a
                           URI which represents its specific connection. If a service is not configured
                           with a specific URI, this default is used.

services:

    <common to all services>
        database_uri                  : override the default uri for this specific service
        database_name                 : used only if there is no database name specified by configured uri

    async_service:
        model: DefaultAsyncService    : implementation to use for Async Service (default: null (none))
        service_signature             : unique identifier for this service instance (generated by default)
        recovery_collection_name      : name of collection for storing asyncronous work (default: "async_recovery") 
        persist_rejected_tasks        : when tasks cannot be processed or queued, persist for later processing (default: true)
        processing_thread_pool_size   : size of thread pool for processing async tasks (default: 4)
        async_tasks_max_queue_size    : size of in memory task queue (default: 1000)
        recovery_poll_time            : poll time (ms) for finding persisted async tasks to process (default: 3000)
                                        use -1 to never process persistently queued tasks or recover failed ones
        failure_recovery_timeout      : time after which the async processor will declared a processing task to
                                        be hung/failed and attempt to reprocess it. Use -1 (default) to disable.
        max_task_failures             : maximum times a task can fail before recovery attempts stop (default: 3)

    content_service:
        model: DefaultContentService  : implementation to use for Content Service (default: "DefaultContentService")
        content_collection_name       : name of collection where messages are stored
        content_validation_class      : java class name of validation implementation to use

    user_graph_service: 
        model: DefaultUserService     : implementation to use for User Service (default: "DefaultUserService")
        maintain_follower_collection  : whether or not to store forward follower links (default: true)
        follower_collection_name      : name of collection where follower information is stored
        maintain_following_collection : whether or not to store the reverse follower links (default: true)
        following_collection_name     : name of the collection where reverse links are stored
        maintain_reverse_index        : use a reverse index on follower collection. useful for un-sharded  deployments
        store_follow_counts_with_user : maintain a count of followers in the user object (default: false)
        user_collection_name          : name of collection where user objects are stored
        user_validation_class         : java class to use to validate user records

    feed_processing:
        model: AsyncPostDelivery      : the feed processor to use, default is no processor which means 
                                        user service requests go directly to the feed service. Using
                                        AsyncPostDelivery intercepts high fanout posts and processes them
                                        via the Async service
        async_fanout_threshold        : fanout threshold, above which posts become asynchronous (default: 200)

    feed_service:

        model: FanoutOnRead           : implementation to use for Feed Service (default: "FanoutOnRead")
        fanout_limit                  : limit users visible in feed, regardless of follower count
        
        model: FanoutOnWriteSizedBuckets  
        fanout_limit                  : limit users visible in feed, regardless of follower count
        bucket_size                   : maximum bucket size (specified in messages) in cache (default: 50)
        bucket_read_batch_size        : number of buckets pulled from database at a time on read (default: 2)
        bucket_collection_name        : MongoDB collection name for the buckets store (default: "sized_buckets")
        cache_author                  : cache the content author in the bucket cache (default: true)
        cache_message                 : cache the content message in the bucket cache (default: true)
        cache_data                    : cache the content data the bucket cache (default: true)

        model: FanoutOnWriteTimeBuckets  
        fanout_limit                  : limit users visible in feed, regardless of follower count
        bucket_timespan_days          : maximum time range of messages in single bucket (default: 7)
        bucket_read_batch_size        : number of buckets pulled from database at a time on read (default: 2)
        bucket_collection_name        : MongoDB collection name for the buckets store (default: "timed_buckets")
        bucket_user_posts             : also store a users posts in their timeline bucket cache (default: true) 
        cache_author                  : cache the content author in the bucket cache (default: true)
        cache_message                 : cache the content message in the bucket cache (default: true)
        cache_data                    : cache the content data the bucket cache (default: true)

        model: FanoutOnWriteToCache  
        fanout_limit                  : limit users visible in feed, regardless of follower count
        cache_size_limit              : maximum number of posts in the timeline cache per user (default: 50)
        bucket_collection_name        : MongoDB collection name for the buckets store (default: "timeline_cache")
        bucket_user_posts             : also store a users posts in their timeline bucket cache (default: true) 
        cache_author                  : cache the content author in the timeline cache (default: true)
        cache_message                 : cache the content message in the timeline cache (default: true)
        cache_data                    : cache the content data the timeline cache (default: true)