Comparison of AWS and Tilores Entity Resolution Software
TL;DR: In our 2023 hands-on test on the same 10 records, Tilores, a real-time entity resolution API, matched each record in milliseconds as it was inserted and resolved the data to the correct 4 entities after about 3 minutes of setup. AWS Entity Resolution, a batch service at the time of the test, took 9–11 minutes and matched to 7 entities (rules) or none (ML). That test remains the starting point, but AWS has expanded the service since: fuzzy rules with Levenshtein, Cosine and Soundex (July 2025), incremental ML matching (May 2026), and real-time matching for advanced rules via the GenerateMatchId API "in milliseconds" (July 2026). The difference that remains: on AWS, real-time matching works with exact rules only. Tilores matches every record at insertion, fuzzy matching included, and makes it searchable immediately via its GraphQL API.
How fast are real-time entity resolution APIs compared to batch matching?
This comparison ran both systems on the same unnormalized 10-record CSV that should resolve to four people. The table summarises what each system did; the full walk-through, screenshots, and result tables are preserved in the sections below.
| Criteria | AWS Entity Resolution | Tilores |
|---|---|---|
| Processing model | Batch (manual or automatic incremental runs), plus real-time via the GenerateMatchId API: 1 record per call, exact rules only | Real-time — matches each record at insertion in milliseconds, fuzzy matching included, with simultaneous search |
| Time to result (this test) | 9–11 minutes (environment setup + batch resolution job) | ~3 minute setup; matching itself takes a few milliseconds |
| Matching accuracy (2023 test, 10 records; target = 4 clusters) | ML: 0 matches (10 entities); Rules: 7 entities | 4 entities (correct), no fine-tuning |
| Setup effort | ≥1 hour for non-AWS users; minutes for AWS experts; needs S3, Glue, IAM, Entity Resolution | 4 clicks; built-in AI proposes preconfigured rules |
| Matching techniques | Simple rules (exact); advanced rules since July 2025 with up to 25 rules, AND/OR, Levenshtein, Cosine and Soundex; ML (not user-trainable, incremental since May 2026, per-record confidence since September 2026); provider matching (LiveRamp, TransUnion, UID 2.0) in US Regions only | OR-connected rules with a confidence score per link; configurable for person and company data |
| Deployment | AWS-native, tightly integrated into the AWS ecosystem | Deployable into a customer's AWS account or as SaaS; on AWS Marketplace; custom GraphQL API |
In our data-driven world, the information accuracy is crucial for company success. However, ensuring this accuracy becomes a daunting task when data contains redundant or inconsistent entries for the same real-world entities. An "entity" could represent a person, a company, a machine, or any other tangible or intangible object.
Fortunately, entity resolution software comes to the rescue by efficiently linking and deduplicating these scattered pieces of information. These systems work to create a clean and accessible datasets, free from redundancies, while preserving all essential information in a deduplicated manner. By harmonizing the data and eliminating duplicates, entity resolution systems empower organizations to make more reliable and informed decisions based on a unified view of their data.
The ER systems in this comparison have different features and functionalities however the result should be the same - clean, properly matched data.
As the topic of entity resolution can be quite complex, ER systems should provide a simple way to start matching the data quickly and functionalities to then fine-tune the matching process.
General Setup
We use 10 records of persons with similar names and same address. These records are stored in one csv file as both systems are able to work with csv. The file is not normalized and contains some spaces in the data.
The resulting matching table should not mix up two different persons, but also should not miss any records that belong to the same person.
As we can see with this data we should retrieve 4 different clusters based on the data:
| Cluster ID | Record IDs |
|---|---|
| 1 | 1, 2, 3, 4, 8, 9 |
| 2 | 5, 6 |
| 3 | 7 |
| 4 | 10 |
New posts on entity resolution, identity data and AI. No spam, unsubscribe any time.
AWS Entity Resolution
Editor's note (2026): this hands-on walkthrough reflects AWS Entity Resolution as it worked at launch. AWS has since added near-real-time matching and other capabilities — see What's changed since this comparison below. The original test narrative is preserved as a point-in-time record.
AWS recently launched their own Entity Resolution service. This service can be either configured to use rules or machine learning for matching. Currently the service runs as a batch service and has no real time capabilities. The configurability is very limited at the moment and the matching of records is only possible for personal data like name and address. As the service was just started a few weeks ago, it is likely that the capabilities will be extended soon.
Product Page: https://aws.amazon.com/de/entity-resolution/
Documentation: https://docs.aws.amazon.com/entityresolution/latest/userguide/setting-up.html
Requirements:
- AWS Account (best with Administrator permissions as you need to use different services)
- AWS S3 for the input and result files
- AWS Glue to create the tables
- AWS IAM to create the needed roles to access all needed services
- AWS Entity Resolution for the final matching of the data
Setup:
First the setup of the required infrastructure, services and data load into a glue table has to be done. Next you need to create a schema mapping and define which columns should be used for matching and which are passed through. Then you group the input fields to be able to match them.
Based on the matching technique there are now two different flows:
- ML based: This technique does not need any configuration and tries to match the records based on a machine learning model. The model cannot be changed or trained by the user. So this is a fast way to do entity resolution but for our test case the results were not good as the model did not match any records.
- Rule based: Using the rule based matching, rules can be defined that match the data. The rules have priorities so that the first rule that matches two records is used and then the processing for this record is stopped. For rule based matching the cadence for the matching runs can be defined (this is not available for the ML process). For the test we choose manual but for changing data it makes sense to use the automatic cadence that starts the job whenever the data is changed.
Different combinations of the match keys can be used as seen in the screenshot below. As with every entity resolution system, the more independent attributes available the better the matching can be.
As the matching keys contain several attributes like first name and last name, the user can choose how the matching should be done by selecting the comparison type.
Results:
ML based
| Cluster ID | Record IDs |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 8 |
| 9 | 9 |
| 10 | 10 |
The ML based approach delivers zero matches and does not allow any additional configuration.
Rule based
| Cluster ID | Record IDs |
|---|---|
| 972d03fa0efc489c9707e4756e7867e9 | 7 |
| 5291e16cc8c14368a5db34760a6c9c3f | 9 |
| 23b30c5fd03a3407b61aaa932cc74eb2 | 3, 2, 1 |
| 303f56fbf9ce472cb34ad1ebbdf1d8d9 | 10 |
| 7bda65da2d66499daad1438773658105 | 4 |
| 6de6133e05b43af4ba9a22245cb02358 | 5, 6 |
| f4f85d56361e405588337896dde55af2 | 8 |
The rules based approach allows to configure simple rules for the matching. The rest of the process is similar to the ML based approach. For the rule based approach the records were matched to 7 resulting entities.
Tilores
Tilores is an entity resolution software that links and deduplicates record data in real-time. Data can be searched simultaneously as data is inserted into Tilores. The software can be deployed into a customer's AWS account or used as a SaaS service. This test uses the public SaaS service's UI.
Tilores can be configured for all kinds of data, including person and company matching and deduplication.
Product Page: https://tilores.io/
Documentation: https://docs.tilotech.io/
AWS Marketplace: https://aws.amazon.com/marketplace/pp/prodview-2yn5oirwdwq74?sr=0-1&ref_=beagle&applicationId=AWSMPContessa
Requirements:
- Registration using email/password or google signup at app.tilores.io (the service can be tested for free)
Setup:
After successful signup, the user can select if a sample file shall be provided by Tilores, if a customer's file is to be uploaded (this is the option we used for the test) or if Tilores should be configured manually.
The first step is to upload the sample file
Tilores built-in AI recognized the data and proposes to use preconfigured rules for this use case:
Using this configuration Tilores now sets up an instance for us and ingests the data.
When the deployment is done, one of the entities is shown using the Tilores search UI.
The whole setup needed 4 clicks from the user, the rest was done automatically.
Usually, data is uploaded to Tilores and also searched using the custom GraphQL API that is part of every instance.
For the test, the setup process configured two rules that match on name and address. In Tilores, the rules are OR connected which means that always all rules are executed which results in a confidence score for each link.
As the data was not normalized and contained white spaces, the data had to be transformed by the system before matching. This is done using the field transformation and extraction that was automatically configured during the setup of the instance. Based on the use case this can further be fine tuned.
For analytics, exports and to provide clean data for machine learning, the Tilores analytics engine can be used. For the test it was used to export the data.
Results:
| Cluster ID | Record IDs |
|---|---|
| 976a6fdc-f6da-4719-920d-8c60f0fe6c91 | 1, 2, 3, 4, 8, 9 |
| dda2d449-03d2-461d-9012-326b7b01d2ee | 5, 6 |
| 5b92221d-df4f-4acc-aaf8-bcfe0f0aac75 | 7 |
| b41199ac-2fb3-44a5-ad87-0ba7ca05e31b | 10 |
The result shows 4 entities. This was achieved without any additional fine-tuning.
Conclusion
The main criteria for entity resolution (ER) use cases is the matching quality, second comes the usability, third the performance.
AWS created a new ER service to meet the increasing demand for quality entity data and integrated it tightly into their ecosystem. As with every AWS service, it is expected that this is just the start and more features will be added based on the customer demand.
Tilores is a patented technology (US Patent No. 12,248,479 B2) that is used by diverse customers with a wealth of features to be configured for all different ER use cases.
To keep this comparison fair, only the simplest possible configuration was used for both systems.
For criteria 1, AWS Entity Resolution Service matched the records in best case (rules) to 7 entities. Tilores matched the records to 4 entities.
Criteria 2 shows how tightly the AWS service is integrated into its ecosystem. Many other AWS services are utilized but also the connectivity to other services is possible in this way. For non-AWS users the configuration will take at least one hour, for AWS experts only a few minutes as a detailed documentation was created. Tilores on the other hand only needs 4 clicks to match the records.
Criteria 3: AWS ER needed between 9 and 11 minutes to run the test. We expect that this time is needed to set up the whole environment and then to run the resolution job. This will be tested again with a bigger dataset. Tilores setup took 3 minutes. As for the AWS ER setup, first the instance has to be deployed. The matching itself only takes a few milliseconds.
What's changed since this comparison? (2026 update)
The hands-on test above reflects AWS Entity Resolution at launch, when it was batch-only. AWS has since expanded the service, so the current picture is more nuanced than "batch vs real-time":
- Near-real-time matching (June 2025). AWS added near-real-time matching: via the GenerateMatchId API it compares an incoming record against existing records and returns a consistent match ID "within seconds." At launch this path supported simple (exact) rules only.
- Fuzzy rules (July 2025). AWS added Levenshtein, Cosine and Soundex to advanced rule-based matching. Advanced rules allow up to 25 rules, combined with AND/OR, alongside Exact and ExactManyToMany. Each fuzzy function must be combined with an exact function via AND.
- Incremental ML matching (May 2026). Since May 4, 2026, AWS added incremental machine-learning matching workflows, so ML matches can update as new data arrives rather than only in full batch runs.
- Real-time matching for advanced rules (July 2026). Since July 22, 2026, GenerateMatchId also works with advanced rules and, per AWS, returns results "in milliseconds." Each call processes one record, with a default quota of 10 requests per second. Levenshtein, Cosine and Soundex are not allowed on this real-time path, so real-time matching on AWS works with exact rules only, not with fuzzy functions or ML.
- Per-record confidence for ML matching (September 2026). Since September 9, 2026, AWS returns a confidence score for each record in ML-based matching.
- Three matching approaches. Per the AWS Entity Resolution FAQs, the service now offers rule-based, ML-powered, and data-service-provider matching (matching to third-party IDs such as Ramp ID, TruAudience, and UID2.0). Per the AWS pricing page, provider matching is available in US Regions only.
Where does that leave the real-time question? Latency is no longer the difference: AWS now states real-time results "in milliseconds" for advanced rules. The difference is fuzzy matching on the real-time path. On AWS, a real-time call uses exact rules only; fuzzy functions and ML run in batch or incremental workflows. Tilores matches and links each record at insertion, fuzzy matching included, and the resolved data is searchable immediately through the Tilores GraphQL API, a capability AWS Entity Resolution does not offer. Tilores is deployable in your own AWS account or as SaaS. For periodic, large-scale dedupe a batch workflow is often the right tool; when fuzzy matching must happen at the moment of ingestion, a real-time API with fuzzy matching in the loop is the closer fit.
See it on your own data: book a demo to see real-time matching on your own data, or get the evaluation build to try it locally, then explore Tilores entity resolution software to deploy real-time matching in your own AWS account or as SaaS.
Frequently asked questions
- How fast are real-time entity resolution APIs compared to batch matching?
- It depends on the processing path. A batch job, such as an AWS Entity Resolution matching workflow, runs on a schedule or trigger; in our 2023 test the AWS run took between 9 and 11 minutes, including environment setup and the resolution job. A real-time API answers per record: since July 2026, the AWS GenerateMatchId API returns a match ID "in milliseconds" for advanced rules, one record per call and with exact rules only. Tilores links and deduplicates each record as it is inserted, fuzzy matching included, with the matching itself taking only a few milliseconds, so records can be searched simultaneously as data arrives. Batch matching suits periodic, scheduled deduplication.
- Does AWS Entity Resolution support real-time matching?
- Yes, today it does. At the time of our 2023 test, AWS Entity Resolution ran as a batch service. Since June 2025, the GenerateMatchId API matches a single record against existing data with simple rules ("within seconds"); since July 2026, it also works with advanced rules and returns results "in milliseconds." Each call processes one record, with a default quota of 10 requests per second. Real-time matching on AWS works with exact rules only: Levenshtein, Cosine and Soundex are not allowed on the real-time path, and ML matching is not available there. Tilores matches each record at insertion in milliseconds, fuzzy matching included.
- AWS Entity Resolution vs Tilores: which matched the test data more accurately?
- In our 2023 test on 10 unnormalized records that should resolve to 4 clusters, AWS machine-learning matching produced zero matches (10 separate entities) and AWS rule-based matching produced 7 entities, while Tilores resolved the records to the correct 4 entities with no additional fine-tuning.
- Can Tilores run inside my own AWS account?
- Yes. Tilores can be deployed into a customer's AWS account or used as a SaaS service, and it is available on the AWS Marketplace. This comparison used the public SaaS service's UI.
- What changed in AWS Entity Resolution since this comparison?
- Since this test, AWS added near-real-time matching for simple rules (June 2025), fuzzy rules with Levenshtein, Cosine and Soundex (July 2025), incremental machine-learning matching workflows (May 2026), real-time matching for advanced rules "in milliseconds", with exact rules only (July 2026), per-record confidence for ML matching (September 2026), and data-service-provider matching to third-party IDs such as Ramp ID, TruAudience and UID2.0 (US Regions only). The original walkthrough reflects the batch-only launch version of the service.
See what resolved entity data does for your business — and your AI.