Skip to content

Commit 32d664f

Browse files
committed
Reword README to include reference to Haxl
Closes #20
1 parent 5a5693f commit 32d664f

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

README.md

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# DataLoader
22

33
DataLoader is a generic utility to be used as part of your application's data
4-
fetching layer to provide a consistent API over various key-value store backends
5-
and reduce requests to those back-ends via batching and caching.
4+
fetching layer to provide a simplified and consistent API over various remote
5+
data sources such as databases or web services via batching and caching.
66

77
[![Build Status](https://travis-ci.org/facebook/dataloader.svg)](https://travis-ci.org/facebook/dataloader)
88
[![Coverage Status](https://coveralls.io/repos/facebook/dataloader/badge.svg?branch=master&service=github)](https://coveralls.io/github/facebook/dataloader?branch=master)
@@ -13,10 +13,22 @@ APIs which existed at the time. At Facebook, "Loader" became one of the
1313
implementation details of the "Ent" framework, a privacy-aware data entity
1414
loading and caching layer within web server product code. This ultimately became
1515
the underpinning for Facebook's GraphQL server implementation and type
16-
definitions. DataLoader is presented in the hope that it may be useful to
17-
produce a similar GraphQL underpinning for other systems which use
18-
[graphql-js][] along side key-value stores, or at the very least remain a
19-
publicly available example of this abstraction.
16+
definitions.
17+
18+
DataLoader is a simplified version of this original idea implemented in
19+
JavaScript for Node.js services. DataLoader is often used when implementing a
20+
[graphql-js][] service, though it is also broadly useful in other situations.
21+
22+
This mechanism of batching and caching data requests is certainly not unique to
23+
Node.js or JavaScript, it is also the primary motivation for
24+
[Haxl](https://github.com/facebook/Haxl), Facebook's data loading library
25+
for Haskell. More about how Haxl works can be read in this [blog post](https://code.facebook.com/posts/302060973291128/open-sourcing-haxl-a-library-for-haskell/).
26+
27+
DataLoader is provided so that it may be useful not just to build GraphQL
28+
services for Node.js but also as a publicly available reference implementation
29+
of this concept in the hopes that it can be ported to other languages. If you
30+
port DataLoader to another language, please open an issue to include a link from
31+
this repository.
2032

2133

2234
## Getting Started

0 commit comments

Comments
 (0)