BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Architecture Content on InfoQ

  • A Critical Look at CQRS

    Looking at Command Query Responsibility Segregation (CQRS) in a larger architectural context there are other architectural styles available. There are database technologies solving the same problems but in a simpler way, Udi Dahan states looking into ways of approaching CQRS. There is also a way that fulfils a lot of the CQRS goals but with fewer moving parts when CQRS is really needed.

  • Software – Is it "Engineering" Yet?

    At the GOTO Amsterdam 2015 conference Mary Shaw talked about progress towards an engineering discipline of software. She explored what it means to have an engineering discipline, how far we have progressed toward having one for software, and what can be the next steps.

  • Why Scrum is Not Enough

    When developing large complex systems and dealing with legacy code, organizations need to have systems in place to support integration and delivery. Modularization can help when agile is scaled with multiple teams that are working in parallel. It's not the framework or method that will do the job, but how your people will make it work to solve your problems says Hans Dekkers.

  • Scaling the Stack Overflow Monolithic App by Obsessing Over Performance

    At QCon New York 2015, David Fullerton presented a deep-dive into the monolithic C# / MS SQL architecture that powers the Stack Overflow website, which handles over 4 billion requests per month. Fullerton argued that by focusing on performance, scalability was included ‘almost for free’; and that by minimising the number of external application services, the need to pay ‘SOA tax’ has been avoided.

  • How NGINX Achieves Performance and Scalability

    Owen Garrett, heads of products at Nginx, Inc., has described on Nginx’s blog which design decisions allow NGINX to provide top-in-class performance and scalability.

  • Stefan Tilkov: Skip the Monolith, Start with Microservices

    During the last months Martin Fowler among others have claimed that a microservices architecture should always start with a monolith, but Stefan Tilkov is convinced this is wrong, building a well-structured monolith with cleanly separated modules that later may be pulled apart into microservices is extremely hard, if not impossible in most cases.

  • Engineering for the Long Term at Google

    Astrid Atkinson, director at Google, drew on their experiences over the last decade to present some rules and advice on engineering for the long term. The Velocity Conference 2015 attendees at Santa Clara learned that it's crucial to imagine that you're going to be wildly successful, that complexity mustn't be eliminated but managed and that the focus should be on scaling systems not teams.

  • Managing Technical Debt Using Total Cost of Ownership

    Total Cost of Ownership (TCO) can be used for investment decisions and financial benefit analysis. When applied to software it covers the initial development costs and subsequent maintenance costs until phase out of a product. TCO can support architectural decisions and management of technical debt.

  • Agile Architecture: Reversibility, Communication and Collaboration

    At the inaugural O’Reilly Software Architecture conference, Molly Dishman and Martin Fowler discussed the role of architecture within agile software development. Key takeaways included; architects must remain ‘hands on’; architecture should focus on reducing irreversibility; adaptable documentation is essential; and architecture is a collaborative effort across the business and technical team.

  • Domain-Driven Design the Wrong Way

    Applications claimed to have been built using Domain-Driven Design (DDD) in reality often consists of entities or DTOs separating data and logic together with services containing a mix of business and infrastructure logic, Gabriel Schenker states, noting that this also often applies early on to projects building new applications. Lack of knowledge is one major reason for this, Schenker believes.

  • Chip Childers on Modern Application Architecture and Cloud Native Application Platform

    Programming frameworks, containers, and application platforms are some of the components that make up the modern application architecture. Chip Childers of Cloud Foundry Foundation spoke at ApacheCon Conference last week about modern application architecture and the cloud native application platform.

  • Google Unveils Details about Borg

    Google has published the paper "Large-scale cluster management at Google with Borg", unveiling details on a technology that was very little spoken about in the past.

  • Raffi Krikorian Provides Guidance for “Re-architecting on the Fly”

    At the inaugural O’Reilly Software Architecture conference, Raffi Krikorian discussed strategies and tactics for technical leads and architects who are undertaking a system rewrite. Drawing on his experience as VP of Twitter Engineering, Krikorian discussed a twelve point plan for managing a re-architecting, including defining “done”, instrumenting existing systems, and enforcing code quality.

  • The Architecture of a Scalable and Resilient Google Cloud Solution

    Google has recently published a paper providing architectural guidelines for creating a scalable and resilient solution running on their cloud platform. This article digests the respective paper extracting the main ideas and advice. These guidelines can be used with minor changes for deploying web applications on other clouds.

  • Lessons Learned From Scaling Services at Google and eBay

    Randy Shoup shared his experiences to the QCon London audience in scaling services at Google and eBay, giving advice on building and operating services. A successful services strategy requires end-to-end service ownership, decentralized decision-making and standardization efforts focused on protocols of communications and supporting infrastructure.

BT