💻 Tilores Studio is now available. Run entity resolution locally on your machine.Download free

← Back to Blog
Entity Resolution August 9, 2023 · 7 min read

Comparison of AWS and Tilores Entity Resolution Software

Hendrik Nehnes
Hendrik Nehnes
CPO, Tilores
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.

CriteriaAWS Entity ResolutionTilores
Processing modelBatch (manual or automatic incremental runs), plus real-time via the GenerateMatchId API: 1 record per call, exact rules onlyReal-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 entities4 entities (correct), no fine-tuning
Setup effort≥1 hour for non-AWS users; minutes for AWS experts; needs S3, Glue, IAM, Entity Resolution4 clicks; built-in AI proposes preconfigured rules
Matching techniquesSimple 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 onlyOR-connected rules with a confidence score per link; configurable for person and company data
DeploymentAWS-native, tightly integrated into the AWS ecosystemDeployable 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 IDRecord IDs
11, 2, 3, 4, 8, 9
25, 6
37
410
Newsletter
Enjoying this article? Get the next one in your inbox.

New posts on entity resolution, identity data and AI. No spam, unsubscribe any time.

By subscribing you agree to our privacy policy.

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 IDRecord IDs
11
22
33
44
55
66
77
88
99
1010

The ML based approach delivers zero matches and does not allow any additional configuration.

Rule based

Cluster IDRecord IDs
972d03fa0efc489c9707e4756e7867e97
5291e16cc8c14368a5db34760a6c9c3f9
23b30c5fd03a3407b61aaa932cc74eb23, 2, 1
303f56fbf9ce472cb34ad1ebbdf1d8d910
7bda65da2d66499daad14387736581054
6de6133e05b43af4ba9a22245cb023585, 6
f4f85d56361e405588337896dde55af28

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 IDRecord IDs
976a6fdc-f6da-4719-920d-8c60f0fe6c911, 2, 3, 4, 8, 9
dda2d449-03d2-461d-9012-326b7b01d2ee5, 6
5b92221d-df4f-4acc-aaf8-bcfe0f0aac757
b41199ac-2fb3-44a5-ad87-0ba7ca05e31b10

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.