A short walkthrough of how we started sending our JMX metrics to the new Sumo Logic Metrics solution.
We’ve been using Sumo Logic for logs and were excited to have one tool and dashboard to visualize logs and metrics! In order to wire this up, we decided to use jmxtrans to regularly pipe the JMX metrics we query with Graphite formatted output to the new Sumo Logic collectors. These collectors can essentially be thought of a hosted version of Graphite.
We’re excited to have officially made the source of our front end visible of the Mayvenn shopping experience!
We’ve previously written about the architecture in our Transitions and Effects blog post but now our whole application is available on GitHub. The readme also has a bit more description/explanation of some of how we thought to structure things. We hope that it can serve as another reference point as to what a full single page app written in ClojureScript/Om could look like.
Using a standalone test server to keep tests high level
In testing our Clojure microservices, we try to test the app completely from its external interface. For most of our services, this testing pattern requires standing up and destroying the service in each test and hitting them with HTTP requests or messages through a queue. Since we test the apps from the outside, we’re able to take advantage of the primary benefits of high-level tests: full refactorability without test modifications (including the persistence layer, choice in databases, HTTP libraries, etc.) and high confidence that all the pieces of the app are properly connected. We’ve also been able to avoid the typical pain points felt from these kinds of test (hard to pinpoint failures and slow test runtimes), mainly by keeping the services small and Clojure’s speediness.
Frontend ClojureScript App Architecture
Update: Storefront is now public! You can check out the source on github.
We recently started extracting the frontend to be rewritten in ClojureScript. It’s been fun to explore the new architecture patterns that Om/React enables.
When exploring the viability of ClojureScript, we looked at CircleCI’s frontend. CircleCI’s frontend is valuable reference to see how a large ClojureScript application is structured. It’s a great, living architecture used in production. I’d recommend Brandon Bloom’s ClojureWest Talk for an overview from the CircleCI frontend team.