Customer Company Size
Mid-size Company
Region
- America
Country
- United States
Product
- Lucidchart
- Typesafe Platform
- Play Web Framework
Tech Stack
- Scala
- Akka
- Java Virtual Machine (JVM)
- Play Framework
Implementation Scale
- Enterprise-wide Deployment
Impact Metrics
- Customer Satisfaction
- Productivity Improvements
Technology Category
- Platform as a Service (PaaS) - Application Development Platforms
- Application Infrastructure & Middleware - API Integration & Management
Applicable Industries
- Software
Applicable Functions
- Product Research & Development
- Business Operation
Use Cases
- Process Control & Optimization
- Remote Collaboration
Services
- Software Design & Engineering Services
- System Integration
About The Customer
Lucid Software is a software development company whose enterprise-level online diagramming tool, Lucidchart, provides a graphical web application in the browser that is on par with, if not better than, desktop software. Lucidchart enables companies to visually communicate processes and ideas in real-time across an entire organization. Lucidchart has a variety of shape libraries, which allow users to create diagrams like org charts, mind maps, UML schemas, ER diagrams, network diagrams, and more. Lucidchart’s support of Visio file types allows for import and export in Visio format; it also gives users the option to import Visio stencils to create custom shape libraries for specialized use cases.
The Challenge
Dealing with healthy growth in product usage is a problem that every company wants, but it can be challenging to provide an efficient and consistent experience for every user. The Lucid engineering team could see that their monolithic server architecture had too much overhead and some limitations that would make it difficult to scale in a cost-effective way. They realized that they needed to make a marked shift in technologies to ensure that the company could meet its performance, scalability, and reliability goals. Lucidchart’s growing pains were due to both architectural realities and to the limitations of certain technologies. For example, Lucidchart’s monolithic application was not easily partitioned and distributed, and CakePHP introduced a lot of overhead per request, resulting in the minimum response times being too high under load. As it became clear that a significant portion of the code base needed to be rewritten, Brian Pugh, VP of Engineering, pushed for a complete survey of existing solutions to find the best tools to meet both current and future technical requirements. The team determined that scaling up in a cost-effective way would be best achieved by adopting a Service Oriented Architecture (SOA) and making significant use of parallel processing to handle compute-intensive operations. Building such an architecture from the ground up is a significant task, so they wanted to leverage existing technologies and frameworks that were purposefully built for the task. The Lucid team narrowed in on PHP, Java, and the Typesafe Platform as possible technologies on which to base their future development.
The Solution
While the team enjoyed the productivity of PHP, they found the visibility into the runtime environment to be limited. On the other hand, the Java Virtual Machine (JVM) has many monitoring tools available with well-documented APIs (e.g. VisualVM, JMX, jmap, jstat). Another important factor the team considered was support for parallel processing, an area where PHP was lacking. While Java does provide the benefits of the JVM runtime and concurrency support, it can be difficult to utilize when massive scale and concurrency are required. That left one option: The Typesafe Platform, consisting of Scala, Akka and Play Web Framework. Scala is a general purpose programming language inspired by the long tradition of functional programming, which makes it easy to avoid shared state. Scala ensures the ready distribution of computation across cores on a multicore server, and across servers in a datacenter. This makes Scala an especially good match for modern multicore CPUs and distributed cloud-computing workloads that require concurrency and parallelism. Play Web Framework is a framework based on a lightweight, stateless, web-friendly architecture that features predictable and minimal resource consumption (CPU, memory, threads) for highly scalable applications. Akka is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on the JVM. Akka vastly simplifies the concurrency problem by providing developers with a higher level of abstraction in its Actor-based model. By utilizing Actors, developers can focus on writing business logic, instead of worrying about low-level tasks like state management, memory locking and thread management. Since these technologies run within the JVM, the Lucid operations team had access to the monitoring tools they needed, while developers were able to take advantage of the numerous libraries available in the Java ecosystem. Furthermore, the engineering team continued to enjoy the highly product
Operational Impact
Quantitative Benefit
Case Study missing?
Start adding your own!
Register with your work email and create a new case study profile for your business.
Related Case Studies.
Case Study
Infosys achieves a 5–7 percent effort reduction across projects
Infosys, a global leader in consulting, technology, and outsourcing solutions, was facing significant challenges in application development and maintenance due to its distributed teams, changing business priorities and the need to stay in alignment with customer needs. The company used a mix of open source, home-grown and third-party applications to support application development projects. However, challenges resulting from distributed teams using manual processes increased as the company grew. It became more and more important for Infosys to execute its projects efficiently, so they could improve quality, reduce defects and minimize delays.
Case Study
Arctic Wolf Envelops Teamworks with 24x7 Cybersecurity Protection and Comprehensive Visibility
Teamworks, a leading athlete engagement platform, faced rising cyberthreats and needed enhanced visibility into its network, servers, and laptops. With software developers connecting from all over the world, the company sought to improve its security posture and position itself for future growth. The company had a secure platform but recognized the need for a more proactive solution to identify gaps within its technology infrastructure. Data exfiltration and malicious access were top concerns, prompting the need for a comprehensive security upgrade.
Case Study
Sawback IT and Datto Save Client From a Costly Mistake
Ballistic Echo, a software development house, faced a critical challenge when human error led to the deletion of thousands of lines of unique code. This incident occurred before the code was pushed to source control, resulting in significant loss of time, revenue, and work. The previous file-level backup solution they used was slow and inefficient, making it nearly impossible to manually recreate the lost work. The need for a more reliable and efficient business continuity solution became evident to avoid such disasters in the future.
Case Study
Opal Helps Customers Shine Thanks to Datto
SP Flooring & Design Center faced a ransomware attack that encrypted and locked their files. The attack was initiated through a compromised service account set up by an outside vendor. The ransomware infection was isolated quickly, but there was a concern about the extent of the data at risk. The company had backups in place but was unsure of how much information was compromised. The situation required immediate action to prevent further damage and restore the affected data.
Case Study
Zapier Aggregates Multiple Analytics in a Single Dashboard with the New Relic Platform
Zapier, a company that enables non-technical users to push data between hundreds of web applications, was facing a challenge in automating and provisioning servers for optimal performance. The company's environment consisted of 50 Linux servers on the Amazon Elastic Compute Cloud (EC2), a Django application split across several servers, and a backend consisting of a dynamic number of celery task workers fed by messages published to a RabbitMQ cluster. They also maintained a number of internal web services on nginx in front of Gunicorn and Node.js processes. Redis handled simple key and value stores, with logging handled by Graylog2 and ElasticSearch. However, they realized that no level of automation would be sufficient without an effective monitoring solution in place. They needed a tool that could provide immediate alerts when something was breaking and could be easily implemented into their environment.
Case Study
Pipeline Insight Case Study: YARCDATA
YarcData faced challenges in determining the conversion rates of prospects into customers through various marketing efforts and identifying the source of its leads. They wanted to know the percentage of opportunities in the sales pipeline that came from different marketing events, web downloads, or self-sourced sales opportunities. Additionally, they needed the ability to drill down into the data to guide where to allocate more marketing dollars based on the success of previous efforts. Previously, YarcData relied heavily on spreadsheets and Salesforce.com reports, which made it difficult to extract the exact information they needed. This reliance on spreadsheets represented about 70% of their data presentation.