clj-commons / aleph

Asynchronous streaming communication for Clojure - web server, web client, and raw TCP/UDP
http://aleph.io
MIT License
2.54k stars 241 forks source link

Compile a list of Aleph users #450

Closed ztellman closed 2 years ago

ztellman commented 5 years ago

We'd like to get a list of companies/organizations using Aleph in production (and which pieces of Aleph they're using), both for bragging rights and to understand who the stakeholders are in future design discussions. If you're using Aleph, please respond to this issue with any details you can provide.

mccraigmccraig commented 5 years ago

we (yapster) are using aleph via juxt/yada

we have an http rest/json api, and also use websockets quite a lot. we do multipart upload with the implementation that yada provides. we're heavy users of manifold deferreds and streams

[edit] oops - we use the http client a fair bit too

gsnewmark commented 5 years ago

We're using following pieces of Aleph at Attendify:

We've also tried proxy support in the HTTP client, but not using it in production yet.

Not directly connected to Aleph, but quite a lot of our code also uses Manifold's deferred to define async operations. We're not using streams that much though.

Edit: corrected usage of WebSockets.

piranha commented 5 years ago

Kasta uses Aleph for the following:

danielcompton commented 5 years ago

Deps (private Maven repository hosting) is using Aleph for the main web application and handling uploads. Downloads go through Varnish. All of the usage of Aleph is via juxt/yada which also makes heavy use of Manifold.

Our use is pretty basic, just an HTTP server, no web sockets or HTTP client.

jhimanka commented 5 years ago

Priima LMS uses Aleph as a ring-compatible HTTP server. Pretty basic functionality now but we are looking into asynchronous cases and Manifold.

wzimrin commented 5 years ago

organizetogether.com is using the aleph web server as our main web sever, and all of our server code is built around manifolds. We're also using the aleph http client to talk to external services whenever reasonable (mostly because it uses manifolds). We're using sente and sente's aleph adaptor for websockets.

In practice, our server code is built around manifolds, then we convert the resulting manifold-based handler to a cps style so we can use ring middleware, and then we convert the cps style handler back into a manifold based one in order to pass it to aleph. It works, but the result feels a tad clunky.

jcf commented 5 years ago

A number of companies and clients I’ve worked with use the Aleph HTTP client and Manifold in production, and a small number of clients used Yada (which as already mentioned is built on top of Aleph).

Aleph and Manifold will play a role in some of my upcoming work, and I’m happy to discuss some of the details privately if that would be helpful.

ztellman commented 5 years ago

@jcf feel free to contact me with any details you're not comfortable sharing publicly

scramjet commented 5 years ago

Systematic is using Aleph in production for both client websocket connections, and for serving web pages at signup (+ Ring + Hiccup + Garden).

We're making active use of Aleph's async request/response support in Ring, and Manifold's integration with core.async (most of our async logic is in core.async, although we'll likely experiment with using Manifold directly at some point).

In future, we'll likely also use Aleph for providing a B2B REST API for our clients.

We love Aleph for many reasons, but it's especially nice for us because we already have a heavy investment in Netty for our other backend services (APNs, DNS, etc).

jaju commented 5 years ago

I'm using the http part for a client that is in "soft" production mode right now. (Can't reveal the name, but will ask). I expect to use manifold soon in another part.

danjohansson commented 5 years ago

KPSystem in Sweden is using the following Aleph functionality: webserver, client, websockets and multipart. We are very happy with it!

alexander-yakushev commented 5 years ago

Grammarly uses Aleph in a part of its backend stack. Things used substantially: HTTP server, HTTP client, asynchronous flows with Manifold, fine-tuned and monitored executors and pools.

pyr commented 5 years ago

Hi!

After a detour through some direct Netty interaction - mostly as a learning exercice - Exoscale now defaults to aleph and manifold for the following in Clojure:

Thanks a lot for your work!

rborer commented 5 years ago

Finity.ai is using Aleph for our internal counters & events component. Aleph HTTP server is used there, responding to roughly 7.5 million requests per day.

We also have started work to transition our web crawler (crawling ~ 26 million URLs per day) from our venerable internal Netty 3.10 wrapper into Aleph. It's a long process as I realized that our current execution model had a few quirks. It's currently running on our testing infrastructure and I intend to deploy it to production beginning next year (I still have to figure out why it gives an OOM every few days of runtime...).

We're also relying a lot on manifold for our whole stream processing platform (which is really awesome btw!).

superstructor commented 5 years ago

@flybot-sg (Flybot Ltd, Singapore) is using it for our HTTP+WebSocket APIs for all sorts of multiplayer game services. Clients are built with the Unity game engine.

fmnoise commented 5 years ago

Eventum (https://eventum.no) is using Aleph for HTTP(servers and clients) and SSE. We also use Manifold for async flows.

lvh commented 5 years ago

We (Latacora) use Aleph/Manifold for some software that talks to AWS a bunch. (It's not a particularly judicious use of Aleph, since it's all blocking AWS SDK goop under the hood.)

jeroenvandijk commented 5 years ago

At adgoji, we're using the Aleph http server as the main http endpoint of our realtime bidder, running on 50-100 servers.

We use Engulf, an application that is build upon (an older version of) Aleph, for load testing. We are using yada in several of our internal endpoints. We use manifold in a lot of our async code as it is more composable than core.async.

miikka commented 5 years ago

At Metosin, I'm using Aleph in one project (a SaaS application) as the HTTP server and I've written some HTTP API clients with it as well.

dev-smx commented 5 years ago

Smxemail uses Aleph for our internal HTTP APIs to the components of our email archive and analytics products running on Azure.

csm commented 5 years ago

At Noon Home we use Aleph in a number of publicly-facing and internal HTTP services; we also use the HTTP client for communication between services. We use the TCP server, with TLS, for all communication with our devices in the field, and use TCP client and server for an internal message queue we developed in-house.

To expand a bit:

aengelberg commented 5 years ago

At Amperity we:

bostonaholic commented 5 years ago

At CircleCI, we use it in a few different services. As of yet, we are utilizing only aleph.http/start-server for some internal and externally exposed services. Routing handled by ring and compojure.

shayanjm commented 5 years ago

We use Aleph at Watchful to power our RESTful API and SSE streaming interfaces!

loomis commented 5 years ago

SixSq uses Aleph for its core ring handler in its (micro) services. We also indirectly use the client indirectly through the kvlt library. As kvlt is deprecated, we will likely use the Aleph client directly in the future. We use the streaming features of Aleph via SSE in some parts of our RESTful APIs.

tanzoniteblack commented 5 years ago

At Yummly, we use aleph (via yada) for the API responses that drive our smart oven & app integration (Whirlpool new release on this), but currently don't actively use it to make http requests or to serve the traffic that runs our website (we use http-kit for that).

We are, however, starting to become very heavy users of manifold in our main API.

mrijk commented 5 years ago

VakantieDiscounter uses Aleph (as http client) mostly for async calls to our internal API's, as well as asynchronous flows with Manifold.

bhurlow commented 5 years ago

We use Aleph at yellowdig for general HTTP server needs, as well as streaming for large data sets

rgm commented 5 years ago

Using aleph with ring/reitit at opengb for some fairly straightforward SPA backends.

JarredLHumphrey commented 5 years ago

We use Aleph at Adaptly (recently acquired by Accenture) as an http client for high volume requests to 3rd party apis.

ztellman commented 5 years ago

I've just been told there's the possibility of Clojurists Together sponsoring work on Aleph. If anyone has pain points they'd like to see addressed in Aleph, or is interested in having their own work on Aleph being sponsored, please contact me.

borkdude commented 5 years ago

Aleph is used at https://drevidence.com in combination with yada.

vigneshsarma commented 5 years ago

We the Identity team at SAP Concur uses Clojure and aleph in many of the services we run. We use both the HTTP client and server.

cddr commented 5 years ago

It has recently been introduced in the testing component of Funding Circle's kafka library (https://github.com/FundingCircle/jackdaw). We use async http requests to exercise tests against the confluent rest proxy, and just ported the internals of the test-machine which uses manifold to improve e2e test resiliency.

johanatan commented 5 years ago

I’m using Aleph’s ‘http client’ and Manifold’s ‘deferred’ for my personal software projects.

ryuuseijin commented 5 years ago

Atlassian Confluence's collaborative editing service Synchrony is using aleph and manifold together with core.async. Aleph is used for websocket support, to talk with browser clients as well as for communication within cluster nodes.

Aleph streams are hooked up on the edges to core.async channels and most of the logic has been implemented in core.async. In restrospect I think it would have been better to embrace aleph streams more fully as they are a richer abstraction and better to work with than core.async channels.

Aleph has been working very well at a relatively high scale (10s of thousands of messages per second).

lispyclouds commented 5 years ago

Zalando's in-house Continuous Delivery Platform is using Aleph as the server to implement the CI/CD service.

It serves as the main entry point into the entire service, serves out the GraphQL API and maintains long connections to various services and performs well with less resources consumption.

taurauko commented 5 years ago

Teachme Biz uses Aleph for its Salesforce connector service.

jeaye commented 4 years ago

We at OkLetsPlay use this for our in-house Firebase alternative.

ztellman commented 3 years ago

I've opened an issue with @clj-commons to discuss the possibility of formally handing off stewardship of this project: https://github.com/clj-commons/meta/issues/59. If anyone in this thread would like to potentially become a maintainer, please say so in that thread. I would be happy to spend whatever time is necessary to get the maintainer (or, ideally, maintainers) up to speed on the internals of the library.