<commit_before># Using mm-sync

## Overview

mm-sync provides a higher level API similar to jQuery or Backbone in terms of having pre-configured XHR calls for the most common RESTful scenarios. Sync is designed heavily around 2-way binding so virtually all of the request params can be manipulated via the DOM (and thus via 2-way binding) as we will see in the examples.

Sync is used as the base class for all 'adapters' which provide API specific implementations of sync that are usable with mm-model and mm-collection.  For more information on extending mm-sync please see [creating adapters](data_comps_creating_adapters.html).

Unlike mm-ajax which is designed to handle a single call at a time, mm-sync can handle multiple concurrent calls. The default concurrency setting is 4 simultaneous calls, but if more are desired they can be set via the `requestConcurrency` param (either markup or JS).

## Data Configuration

MM-Sync exposes a `data` property which can be set via JS or bound to to set the request body. This is actually serialized in mm-ajax so if you need to see the serialization code, please check there.

a `url` property is also exposed and can be used to set the base or non-changing part of the URL.  Note that the urlParams are then concatenated into that URL using '/''s per element.<commit_msg>Remove link to the 'creating adapters' article<commit_after># Using mm-sync

## Overview

mm-sync provides a higher level API similar to jQuery or Backbone in terms of having pre-configured XHR calls for the most common RESTful scenarios. Sync is designed heavily around 2-way binding so virtually all of the request params can be manipulated via the DOM (and thus via 2-way binding) as we will see in the examples.

Sync is used as the base class for all 'adapters' which provide API specific implementations of sync that are usable with mm-model and mm-collection.

Unlike mm-ajax which is designed to handle a single call at a time, mm-sync can handle multiple concurrent calls. The default concurrency setting is 4 simultaneous calls, but if more are desired they can be set via the `requestConcurrency` param (either markup or JS).

## Data Configuration

MM-Sync exposes a `data` property which can be set via JS or bound to to set the request body. This is actually serialized in mm-ajax so if you need to see the serialization code, please check there.

a `url` property is also exposed and can be used to set the base or non-changing part of the URL.  Note that the urlParams are then concatenated into that URL using '/''s per element.
{'fraction_non_alphanumeric': 0.04090377873003506, 'fraction_numerical': 0.002337358784573432, 'mean_word_length': 4.294845360824742, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3001046', 'n_tokens_mistral': 649, 'n_tokens_neox': 613, 'n_words': 417}