Stitch

Stitch

51 Followers
All your data. In your data warehouse. In minutes.
Tools by Stitch

Decisions 3

Jake Stein

CEO at Stitch

The majority of our Clojure microservices are simple web services that wrap a transactional database with CRUD operations and a little bit of business logic. We use both MySQL and PostgreSQL for transactional data persistence, having transitioned from the former to the latter for newer services to take advantage of the new features coming out of the Postgres community.

Most of our Clojure best practices can be summed up by the phrase "keep it simple." We avoid more complex web frameworks in favor of using the Ring library to build web service routes, and we prefer sending SQL directly to the JDBC library rather than using a complicated ORM or SQL DSL.

16 91.6K

Jake Stein

CEO at Stitch

Stitch’s frontend is used to configure data sources and destinations and monitor the status of each. Although we have been using AngularJS since its early days, we recently introduced React components into our front end, which many of our developers find easier to work with. We started using CoffeeScript when it was one of the few options for a more expressive alternative to vanilla JavaScript, but today we opt to instead write new code in ES6, which we feel is a more mature alternative.

15 217.4K

Jake Stein

CEO at Stitch

Stitch is run entirely on AWS. All of our transactional databases are run with Amazon RDS, and we rely on Amazon S3 for data persistence in various stages of our pipeline. Our product integrates with Amazon Redshift as a data destination, and we also use Redshift as an internal data warehouse (powered by Stitch, of course).

The majority of our services run on stateless Amazon EC2 instances that are managed by AWS OpsWorks. We recently introduced Kubernetes into our infrastructure to run the scheduled jobs that execute Singer code to extract data from various sources. Although we tend to be wary of shiny new toys, Kubernetes has proven to be a good fit for this problem, and its stability, strong community and helpful tooling have made it easy for us to incorporate into our operations.

While we continue to be happy with Clojure for our internal services, we felt that its relatively narrow adoption could impede Singer's growth. We chose Python both because it is well suited to the task, and it seems to have reached critical mass among data engineers. All that being said, the Singer spec is language agnostic, and integrations and libraries have been developed in JavaScript, Go, and Clojure.

13 125.4K

Followers 51

Daniel Kamener
Dadi Atar
Charles Du
Jigisha Dhawan
paul tucker
Chris Jenkins
Benjamin Foucher
GUNNAR GODARA
Nehil Jain
Krishna Poda
dswegart-dhi
Shruti Gupta
Cristian Tala Sánchez
Maks Pazuniak
Courtney Walker
Parag Dharmadhikari
Alcides Morales Guedes
Fran Trapero Cerezo
oreofeolurin
Daniel Collins
alexandrebonny9467
Peter Verheijen
Andrejs Eisaks
Kingsley Victor
Yonas Beshawred
Kelsey Halkyer
Brian Sloane